| #
347f7eab |
| 28-Jan-2009 |
Douglas Gregor <[email protected]> |
Code generation support for C99 designated initializers.
The approach I've taken in this patch is relatively straightforward, although the code itself is non-trivial. Essentially, as we process an i
Code generation support for C99 designated initializers.
The approach I've taken in this patch is relatively straightforward, although the code itself is non-trivial. Essentially, as we process an initializer list we build up a fully-explicit representation of the initializer list, where each of the subobject initializations occurs in order. Designators serve to "fill in" subobject initializations in a non-linear way. The fully-explicit representation makes initializer lists (both with and without designators) easy to grok for codegen and later semantic analyses. We keep the syntactic form of the initializer list linked into the AST for those clients interested in exactly what the user wrote.
Known limitations: - Designating a member of a union that isn't the first member may result in bogus initialization (we warn about this) - GNU array-range designators are not supported (we warn about this)
llvm-svn: 63242
show more ...
|
| #
3f66b84c |
| 27-Jan-2009 |
Eli Friedman <[email protected]> |
Support CodeGen for __extension__ operator on aggregates.
llvm-svn: 63101
|
| #
7139af42 |
| 25-Jan-2009 |
Eli Friedman <[email protected]> |
Rename Expr::isConstantExpr to Expr::isConstantInitializer; this more accurately states what the function is trying to do and how it is different from Expr::isEvaluatable. Also get rid of a parame
Rename Expr::isConstantExpr to Expr::isConstantInitializer; this more accurately states what the function is trying to do and how it is different from Expr::isEvaluatable. Also get rid of a parameter that is both unused and inaccurate.
llvm-svn: 62951
show more ...
|
| #
7ffcf93b |
| 15-Jan-2009 |
Nuno Lopes <[email protected]> |
add codegen support to union casts init of static vars still not working. I'll get back to it tomorrow or so
llvm-svn: 62278
|
| #
020cddcf |
| 09-Jan-2009 |
Sebastian Redl <[email protected]> |
Prevent a segfault for vaarg expressions on unsupported architectures.
llvm-svn: 62008
|
| #
91f84216 |
| 11-Dec-2008 |
Douglas Gregor <[email protected]> |
Unifies the name-lookup mechanisms used in various parts of the AST and separates lexical name lookup from qualified name lookup. In particular: * Make DeclContext the central data structure for st
Unifies the name-lookup mechanisms used in various parts of the AST and separates lexical name lookup from qualified name lookup. In particular: * Make DeclContext the central data structure for storing and looking up declarations within existing declarations, e.g., members of structs/unions/classes, enumerators in C++0x enums, members of C++ namespaces, and (later) members of Objective-C interfaces/implementations. DeclContext uses a lazily-constructed data structure optimized for fast lookup (array for small contexts, hash table for larger contexts).
* Implement C++ qualified name lookup in terms of lookup into DeclContext.
* Implement C++ unqualified name lookup in terms of qualified+unqualified name lookup (since unqualified lookup is not purely lexical in C++!)
* Limit the use of the chains of declarations stored in IdentifierInfo to those names declared lexically.
* Eliminate CXXFieldDecl, collapsing its behavior into FieldDecl. (FieldDecl is now a ScopedDecl).
* Make RecordDecl into a DeclContext and eliminates its Members/NumMembers fields (since one can just iterate through the DeclContext to get the fields).
llvm-svn: 60878
show more ...
|
| #
f5d08c9e |
| 02-Dec-2008 |
Eli Friedman <[email protected]> |
Disabling this code due to regression on test/CodeGen/bitfield.c. See PR3152.
llvm-svn: 60389
|
| #
c59bb48e |
| 30-Nov-2008 |
Eli Friedman <[email protected]> |
Fix for PR2969: generate a memcpy from a constant for constant initializers. llvm-gcc appears to be more aggressive, but incorrect, for constructs like "const int a[] = {1,2,3};"; that said, curre
Fix for PR2969: generate a memcpy from a constant for constant initializers. llvm-gcc appears to be more aggressive, but incorrect, for constructs like "const int a[] = {1,2,3};"; that said, current optimizers will do the appropriate optimizations when safe.
llvm-svn: 60270
show more ...
|
| #
9ac53516 |
| 22-Nov-2008 |
Fariborz Jahanian <[email protected]> |
Implemented ir-gen for 'implicit' properties using the new AST nodes.
llvm-svn: 59886
|
| #
8a1810f0 |
| 22-Nov-2008 |
Fariborz Jahanian <[email protected]> |
New AST node to access "implicit" setter/getter using property dor syntax. Issuing diagnostics when assigning to read-only properties. This is work in progress.
llvm-svn: 59874
|
| #
0f137df0 |
| 21-Nov-2008 |
Chris Lattner <[email protected]> |
reapply the (corrected) patch to use the new llvm intrinsics for memcpy/memmove etc.
llvm-svn: 59824
|
| #
b7f4ce3d |
| 21-Nov-2008 |
Chris Lattner <[email protected]> |
temporarily revert Sangiv's patch.
llvm-svn: 59821
|
| #
37129848 |
| 21-Nov-2008 |
Sanjiv Gupta <[email protected]> |
mem[cpy,set,move] intrinsics are now overloaded.
llvm-svn: 59806
|
| #
a612e79b |
| 13-Nov-2008 |
Daniel Dunbar <[email protected]> |
Normalize many BasicBlock names. - Use dotted notation for blocks related to a particular statement type. - Use .end for landing pads.
No functionality change in NDEBUG mode. :)
llvm-svn: 59210
|
| #
c56e6764 |
| 11-Nov-2008 |
Daniel Dunbar <[email protected]> |
Add CodeGenFunction::EmitBranch. - Emits an unconditional branch, with extra logic to avoid generating spurious branches out of dummy blocks.
llvm-svn: 59037
|
| #
75283ff3 |
| 11-Nov-2008 |
Daniel Dunbar <[email protected]> |
Centralize basic block creation in CodeGenFunction::createBasicBlock. - No functionality change.
llvm-svn: 59017
|
|
Revision tags: llvmorg-2.4.0 |
|
| #
13abd7e9 |
| 04-Nov-2008 |
Anders Carlsson <[email protected]> |
Implement lowering of va_arg in clang directly. (This is 32-bit X86 only for now).
llvm-svn: 58681
|
| #
cb463859 |
| 01-Nov-2008 |
Daniel Dunbar <[email protected]> |
Move IRBuilder type definition to common file. - No functionality change.
llvm-svn: 58546
|
| #
084bc32e |
| 26-Oct-2008 |
Chris Lattner <[email protected]> |
make codegen reject initializes with designators, like this:
t.c:1:13: error: cannot codegen this designators yet int a[10] = {2, 4, [8]=9, 10}; ^~~~~~~~~~~~~~~~~
llvm-svn: 58220
|
| #
0bc8e86d |
| 09-Sep-2008 |
Daniel Dunbar <[email protected]> |
Move EmitAggregate{Copy,Clear} into CodeGenFunction. - No functionality change.
llvm-svn: 56010
|
| #
2e744e8a |
| 30-Aug-2008 |
Anders Carlsson <[email protected]> |
Stub out CodeGenFunction::EmitObjCForCollectionStmt.
Add CodeGenFunction::EmitMemSetToZero and make AggExprEmitter::EmitAggregateClear use it.
llvm-svn: 55573
|
| #
7e1e5710 |
| 30-Aug-2008 |
Anders Carlsson <[email protected]> |
Simplify some calls to Builder.CreateCall
llvm-svn: 55567
|
| #
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 ...
|
| #
55310df7 |
| 27-Aug-2008 |
Daniel Dunbar <[email protected]> |
Initial support for Obj-C dot-syntax for getters.
llvm-svn: 55410
|
| #
28ff072b |
| 23-Aug-2008 |
Daniel Dunbar <[email protected]> |
Drop a dead call to isConstantExpr()
llvm-svn: 55244
|