| #
50a1270d |
| 19-Nov-2008 |
Fariborz Jahanian <[email protected]> |
Few more changes due to Daniel's feedback.
llvm-svn: 59645
|
| #
9b1335ec |
| 19-Nov-2008 |
Daniel Dunbar <[email protected]> |
Fix redundant load of bit-fields on assignment (to get the updated value). - Use extra argument to EmitStoreThroughLValue to provide place to write update bit-field value if caller requires it.
Fix redundant load of bit-fields on assignment (to get the updated value). - Use extra argument to EmitStoreThroughLValue to provide place to write update bit-field value if caller requires it. - This fixes several FIXMEs.
llvm-svn: 59615
show more ...
|
| #
d7db9644 |
| 19-Nov-2008 |
Fariborz Jahanian <[email protected]> |
Generate strong write barriers for __strong objects. Also, took care of Daniel's commments.
llvm-svn: 59575
|
| #
83f45b55 |
| 18-Nov-2008 |
Fariborz Jahanian <[email protected]> |
Patch for generation of weak write barriers for objc __weak objects.
llvm-svn: 59560
|
| #
f5125d19 |
| 18-Nov-2008 |
Fariborz Jahanian <[email protected]> |
Generate objc_read_weak for __weak objc loads.
llvm-svn: 59553
|
| #
406b117e |
| 18-Nov-2008 |
Fariborz Jahanian <[email protected]> |
Some basic support toward objective-c's GC code gen.
llvm-svn: 59543
|
| #
993603d8 |
| 14-Nov-2008 |
Douglas Gregor <[email protected]> |
Add a new expression node, CXXOperatorCallExpr, which expresses a function call created in response to the use of operator syntax that resolves to an overloaded operator in C++, e.g., "str1 + str2" t
Add a new expression node, CXXOperatorCallExpr, which expresses a function call created in response to the use of operator syntax that resolves to an overloaded operator in C++, e.g., "str1 + str2" that resolves to std::operator+(str1, str2)". We now build a CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But only for binary operators, where we actually implement overloading)
I decided *not* to refactor the current CallExpr to make it abstract (with FunctionCallExpr and CXXOperatorCallExpr as derived classes). Doing so would allow us to make CXXOperatorCallExpr a little bit smaller, at the cost of making the argument and callee accessors virtual. We won't know if this is going to be a win until we can parse lots of C++ code to determine how much memory we'll save by making this change vs. the performance penalty due to the extra virtual calls.
llvm-svn: 59306
show more ...
|
| #
f7fb7504 |
| 13-Nov-2008 |
Daniel Dunbar <[email protected]> |
Easy IRgen improvement for bitfields, don't emit x >> 0. - Logic such as this quite possibly should be optional builder behavior.
llvm-svn: 59213
|
|
Revision tags: llvmorg-2.4.0 |
|
| #
8ea1f534 |
| 04-Nov-2008 |
Douglas Gregor <[email protected]> |
Add a new expression class, ObjCSuperExpr, to handle the Objective-C 'super'. Remove ObjCThis from PredefinedExpr
llvm-svn: 58698
|
| #
1ea1aa2c |
| 17-Oct-2008 |
Daniel Dunbar <[email protected]> |
Emit more descriptive unsupported error message on dot-syntax use of super.
llvm-svn: 57745
|
| #
b3517472 |
| 17-Oct-2008 |
Daniel Dunbar <[email protected]> |
Lift CodeGenFunction::EmitPredefinedFunctioName out of EmitPredefinedLValue. - Shouldn't assume predefined expr is a function printing one. - Uses CGM functionality to cache function names per modu
Lift CodeGenFunction::EmitPredefinedFunctioName out of EmitPredefinedLValue. - Shouldn't assume predefined expr is a function printing one. - Uses CGM functionality to cache function names per module.
llvm-svn: 57737
show more ...
|
| #
1c64e5d1 |
| 24-Sep-2008 |
Daniel Dunbar <[email protected]> |
Refactor some CodeGen functionality: - Add CodeGenFunction::{EmitReturnOfRValue, EmitIvarOffset} - Factor EmitLValueForIvar out of EmitObjCIvarRefLValue.
No non-error functionality change (some u
Refactor some CodeGen functionality: - Add CodeGenFunction::{EmitReturnOfRValue, EmitIvarOffset} - Factor EmitLValueForIvar out of EmitObjCIvarRefLValue.
No non-error functionality change (some unsupported errors are degraded to asserts for the time being).
llvm-svn: 56543
show more ...
|
| #
07052350 |
| 10-Sep-2008 |
Argyrios Kyrtzidis <[email protected]> |
Implement CodeGen support for the 'CXXConditionDeclExpr' expression node, which represents a 'condition' declaration, e.g: "if (int x=0) {...}".
llvm-svn: 56045
|
| #
613855c8 |
| 09-Sep-2008 |
Daniel Dunbar <[email protected]> |
Move ABI specific code for functions / calls to CGCall.cpp: - Factor out EmitFunction{Pro,Epi}log
llvm-svn: 56031
|
| #
41cf9ded |
| 09-Sep-2008 |
Daniel Dunbar <[email protected]> |
Change CodeGen to emit calls using (RValue,Type) list: - Add CodeGenFunction::EmitAnyExprToTemp o Like EmitAnyExpr, but emits aggregates to a temporary location if none is available. Seems l
Change CodeGen to emit calls using (RValue,Type) list: - Add CodeGenFunction::EmitAnyExprToTemp o Like EmitAnyExpr, but emits aggregates to a temporary location if none is available. Seems like this should be simpler (even aside from using first class aggregates).
- Killed CodeGenFunction::EmitCallArg (just append the pair)
- Conversion of RValues to actual call arguments is now isolated in CodeGenFunction::EmitCall.
llvm-svn: 55970
show more ...
|
| #
3d7c90b8 |
| 08-Sep-2008 |
Daniel Dunbar <[email protected]> |
Refactor parameter attribute handling: - Add CGCall.h for dealing with ABI issues related to calls. - Add CGFunctionInfo and CGCallInfo for capturing ABI relevant information about functions
Refactor parameter attribute handling: - Add CGCall.h for dealing with ABI issues related to calls. - Add CGFunctionInfo and CGCallInfo for capturing ABI relevant information about functions and calls. - Isolate LLVM parameter attribute handling inside CGCall.cpp
llvm-svn: 55963
show more ...
|
| #
8cde00a5 |
| 04-Sep-2008 |
Daniel Dunbar <[email protected]> |
Implement codegen of aggregates as lvalues in binary expressions, e.g. "(a = b).somefield".
llvm-svn: 55758
|
| #
4b8c6db9 |
| 30-Aug-2008 |
Daniel Dunbar <[email protected]> |
Add Objective-C property setter support. - Change Obj-C runtime message API, drop the ObjCMessageExpr arg in favor of just result type and selector. Necessary so it can be reused in situations
Add Objective-C property setter support. - Change Obj-C runtime message API, drop the ObjCMessageExpr arg in favor of just result type and selector. Necessary so it can be reused in situations where we don't want to cons up an ObjCMessageExpr. - Update aggregate binary assignment to know about special property ref lvalues. - Add CodeGenFunction::EmitCallArg overload which takes an already emitted rvalue.
Add CodeGenFunction::StoreComplexIntoAddr.
Disabled logic in Sema for parsing Objective-C dot-syntax that accesses methods. This code does not search in the correct order and the AST node has no way of properly representing its results.
Updated StmtDumper to print a bit more information about ObjCPropertyRefExprs.
llvm-svn: 55561
show more ...
|
| #
c722b856 |
| 30-Aug-2008 |
Daniel Dunbar <[email protected]> |
Refactor handling of calls: - Added CodeGenFunction::EmitCall which just takes the callee, return type, and a list of (Value*,QualType) pairs. - Added CodeGenFunction::EmitCallArg which handles
Refactor handling of calls: - Added CodeGenFunction::EmitCall which just takes the callee, return type, and a list of (Value*,QualType) pairs. - Added CodeGenFunction::EmitCallArg which handles emitting code for a call argument and turning it into an appropriate (Value*,QualType) pair. - Changed Objective-C runtime interface so that the actual emission of arguments for message sends is (once again) done in the code to emit a message send.
No intended functionality change, this is prep work for better ABI support and for Objective-C property setter support.
llvm-svn: 55560
show more ...
|
| #
9e22c0d3 |
| 29-Aug-2008 |
Daniel Dunbar <[email protected]> |
Add special "property reference" CodeGen::LValue type for emitting Objective-C property references. - This handles property references "more correctly" but setters still don't work.
llvm-svn: 55
Add special "property reference" CodeGen::LValue type for emitting Objective-C property references. - This handles property references "more correctly" but setters still don't work.
llvm-svn: 55534
show more ...
|
| #
f2e69888 |
| 25-Aug-2008 |
Daniel Dunbar <[email protected]> |
Support __PRETTY_FUNCTION__ and friends in Obj-C methods.
Add CodeGenFunction::EmitUnsupportedLValue - Gives error and returns undef value.
Swap some asserts() over to using EmitUnsupportedLValue
Support __PRETTY_FUNCTION__ and friends in Obj-C methods.
Add CodeGenFunction::EmitUnsupportedLValue - Gives error and returns undef value.
Swap some asserts() over to using EmitUnsupportedLValue - Rumor has it users (and even some developers) prefer carat diagnostics to backtraces. - Works better in Release-Asserts to boot.
llvm-svn: 55328
show more ...
|
| #
c13b85a6 |
| 25-Aug-2008 |
Anders Carlsson <[email protected]> |
Make code generation of ivar ref exprs more like member exprs.
llvm-svn: 55298
|
| #
c8317a44 |
| 23-Aug-2008 |
Daniel Dunbar <[email protected]> |
Implement Obj-C ivar references to aggregates.
Implement Obj-C lvalue message sends (aggregate returns).
Update several places to emit more precise ErrorUnsupported warnings for currently unimple
Implement Obj-C ivar references to aggregates.
Implement Obj-C lvalue message sends (aggregate returns).
Update several places to emit more precise ErrorUnsupported warnings for currently unimplemented Obj-C features (main missing chunks are property references, Obj-C exception handling, and the for ... in syntax).
llvm-svn: 55234
show more ...
|
| #
97ff50dd |
| 23-Aug-2008 |
Daniel Dunbar <[email protected]> |
NeXT: Fix message sends which return structures. - Simplify the sending code a bit.
llvm-svn: 55232
|
| #
97db84ce |
| 23-Aug-2008 |
Daniel Dunbar <[email protected]> |
Trim CGObjCRuntime::GenerateMessageSend[Super] - Returns an RValue. - Reduced to only taking the CodeGenFunction, Expr, and Receiver. - Becomes responsible for emitting the arguments.
Add CodeGen
Trim CGObjCRuntime::GenerateMessageSend[Super] - Returns an RValue. - Reduced to only taking the CodeGenFunction, Expr, and Receiver. - Becomes responsible for emitting the arguments.
Add CodeGenFunction::EmitCallExprExt - Takes optional extra arguments to insert at the head of the call. - This allows the Obj-C runtimes to call into this and isolates the argument and call instruction generation code to one place. Upshot is that we now pass structures (more) correctly.
Also, fix one aspect of generating methods which take structure arguments (for NeXT). This probably needs to be merged with the SetFunctionAttributes code in CodeGenModule.cpp
llvm-svn: 55223
show more ...
|