summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.h
Commit message (Collapse)AuthorAgeFilesLines
...
* reimplement codegen for indirect goto with the following advantages:Chris Lattner2009-10-131-8/+7
| | | | | | | | | | | | | 1. CGF now has fewer bytes of state (one pointer instead of a vector). 2. The generated code is determinstic, instead of getting labels in 'map order' based on pointer addresses. 3. Clang now emits one 'indirect goto switch' for each function, instead of one for each indirect goto. This fixes an M*N = N^2 IR size issue when there are lots of address-taken labels and lots of indirect gotos. 4. This also makes the default cause do something useful, reducing the size of the jump table needed (by one). llvm-svn: 83952
* Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base ↵Anders Carlsson2009-10-061-0/+5
| | | | | | class offsets. Fix the code to handle virtual bases as well. llvm-svn: 83426
* Implement code generation of member function pointer calls. Fixes PR5121.Anders Carlsson2009-10-031-0/+2
| | | | llvm-svn: 83271
* Move some functions from CodeGenFunctions to CodeGenModule so they can be ↵Anders Carlsson2009-10-031-5/+0
| | | | | | used by CGExprConstant. llvm-svn: 83263
* Handle CK_BaseToDerivedMemberPointer for member function pointers. Fixes PR5091.Anders Carlsson2009-09-291-0/+5
| | | | llvm-svn: 83041
* CodeGen for try statements. (We just emit the body for now).Anders Carlsson2009-09-271-0/+3
| | | | llvm-svn: 82910
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-241-0/+6
| | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705
* Add a new variant of EmitCXXAggrConstructorCall that takes a Value that ↵Anders Carlsson2009-09-231-2/+5
| | | | | | holds the number of elements to construct, to be used when implementing new[]. llvm-svn: 82602
* Code generation of Conditional operators that are lvalues (but that aren't ↵Anders Carlsson2009-09-151-1/+1
| | | | | | bitfields). llvm-svn: 81867
* Remove an unnecessary FunctionDecl parameter to the synthesizing functions.Anders Carlsson2009-09-141-11/+11
| | | | llvm-svn: 81759
* Implement CodeGenFunction::EmitCXXExprWithTemporariesLValue.Anders Carlsson2009-09-141-1/+2
| | | | llvm-svn: 81738
* Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a ↵Anders Carlsson2009-09-121-4/+5
| | | | | | NullCheckValue argument (currently unused). llvm-svn: 81606
* For __block variables, cache the LLVM types as well as which LLVM field ↵Anders Carlsson2009-09-121-0/+10
| | | | | | where the variable is stored. llvm-svn: 81599
* Add basic covariant thunk generation support. WIP.Mike Stump2009-09-111-0/+4
| | | | llvm-svn: 81585
* Pass GlobalDecls to GenerateCode and StartFunction.Anders Carlsson2009-09-111-6/+5
| | | | llvm-svn: 81485
* If a cast expression needs either a conversion function or a constructor to ↵Anders Carlsson2009-09-091-2/+0
| | | | | | be called, generate implicit child expressions that call them. llvm-svn: 81383
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-64/+64
| | | | llvm-svn: 81346
* Make BuildByRefType take a ValueDecl instead of a QualType and an alignment.Anders Carlsson2009-09-091-2/+1
| | | | llvm-svn: 81315
* Install thunks later to fixup overrides. Track space taken by vbaseMike Stump2009-09-051-2/+1
| | | | | | offsets better for thunk refinements. Cleanups. WIP. llvm-svn: 81067
* Add overidding for methods for vtable building for the secondaryMike Stump2009-09-041-0/+5
| | | | | | vtables. Add thunk generation. WIP. llvm-svn: 81014
* Re-implemented generation of objc_memmove_collectableFariborz Jahanian2009-08-311-2/+3
| | | | | | API for copying GC'able aggregates (Next runtime only). llvm-svn: 80607
* ir-gen for type convesion of class objects. WIP.Fariborz Jahanian2009-08-261-0/+2
| | | | llvm-svn: 80178
* Implement virtual dispatch. :-) This is self-consistent with clang,Mike Stump2009-08-261-0/+2
| | | | | | | but not yet necessarily perfectly consistent with gcc. Also addressed Doug and John's comments. llvm-svn: 80137
* Revert r80064 since it broke the build.Anders Carlsson2009-08-261-2/+0
| | | | llvm-svn: 80066
* Implement virtual dispatch. :-) This is self-consistent with clang, but ↵Mike Stump2009-08-261-0/+2
| | | | | | | | not yet necessarily perfectly consistent with gcc. llvm-svn: 80064
* Remove dead codeAnders Carlsson2009-08-241-3/+0
| | | | llvm-svn: 79921
* Patch to ir-gen copy assigning array members when synthesizing Fariborz Jahanian2009-08-211-0/+6
| | | | | | a copy assignment operator function. llvm-svn: 79681
* Patch to provide ir-gen support in copying array membersFariborz Jahanian2009-08-211-0/+6
| | | | | | | when synthesizing a copy constructor. Arrays's base element may have a trivial or non-trivial copy constructor. llvm-svn: 79653
* ir-gen patch to destruct array members. WIP.Fariborz Jahanian2009-08-201-0/+4
| | | | llvm-svn: 79565
* Using "ObjCImplicitSetterGetterRefExpr" instead of ↵Fariborz Jahanian2009-08-201-1/+1
| | | | | | | | "ObjCImplctSetterGetterRefExpr". A field rename and more comments. llvm-svn: 79537
* ir-gen for constructing arrays as non-static data members. WIP.Fariborz Jahanian2009-08-191-0/+4
| | | | llvm-svn: 79464
* Add some documentation.Mike Stump2009-08-181-0/+1
| | | | llvm-svn: 79373
* Cleanups. Move GenerateRtti to CodeGenModule.Mike Stump2009-08-181-1/+0
| | | | llvm-svn: 79372
* Move the rest of the vtable building code into the new builder.Mike Stump2009-08-181-22/+0
| | | | llvm-svn: 79370
* Renamed ObjCKVCRefExpr to ObjCImplctSetterGetterRefExpr.Fariborz Jahanian2009-08-181-1/+1
| | | | | | | | Removed an unnecessary loop to get to setters incoming argument. Added DoxyGen comments. Still more work to do in this area (WIP). llvm-svn: 79365
* Patch to 1) synthesizing non-trivial default destructor whenFariborz Jahanian2009-08-171-0/+5
| | | | | | | | one is not provided by user. 2) More complete emission of ctor prologue when it has no initializer list or when it is synthesized. llvm-svn: 79269
* Improve handling of delete expressions.Anders Carlsson2009-08-161-0/+1
| | | | llvm-svn: 79205
* Add an IsInitializer flag to EmitAnyExpr. This is used to prevent ↵Anders Carlsson2009-08-161-7/+10
| | | | | | temporaries from being destroyed when they're bound to a reference variable. llvm-svn: 79179
* Cleanups and fixups for calculating the virtual base offsets. WIP.Mike Stump2009-08-161-4/+11
| | | | llvm-svn: 79156
* Fix for PR4721: adjust CodeGen and ASTContext so that we have a Eli Friedman2009-08-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | consistent model for handling size expressions for VLAs. The model is essentially as follows: VLA types own their associated expression. In some cases, we need to create multiple VLA types to represent a given VLA (for canonical types, or qualifiers on array types, or type merging). If we need to create multiple types based off of the same VLA declaration, we use the new refcounting functionality so they can all own the expression. The VLASizeMap in CodeGenFunction then uses the size expression to identify the group of VLA types based off of the same original declaration. I'm not particularly attached to the VLA types owning the expression, but we're stuck with at least until someone comes up with a way to walk the VLA expressions for a declaration. I did the parallel fix in ASTContext for DependentSizedArrayType, but I haven't really looked closely at it, so there might still be issues there. I'll clean up the code duplication in ASTContext in a followup commit. llvm-svn: 79071
* Refine vtable layout for virtual bases and keep better track ofMike Stump2009-08-131-0/+4
| | | | | | primaries. WIP. llvm-svn: 78950
* Update for LLVM API change.Owen Anderson2009-08-131-2/+2
| | | | llvm-svn: 78946
* More toward synthesizing copy assignments. SWIP.Fariborz Jahanian2009-08-121-0/+5
| | | | llvm-svn: 78861
* Refactor. WIP. Eventually, this will all go into a vtable builder class.Mike Stump2009-08-121-0/+2
| | | | llvm-svn: 78857
* Refactor.Mike Stump2009-08-121-0/+2
| | | | llvm-svn: 78854
* Patch for synthesizing copy assignment operator.Fariborz Jahanian2009-08-121-0/+6
| | | | | | WIP. llvm-svn: 78841
* Refine vtable building for the secondary vtables to exclude yet moreMike Stump2009-08-121-2/+3
| | | | | | | cases where a virtual base was already used as a primary base class. WIP. llvm-svn: 78820
* LLVMContext is a class now.Benjamin Kramer2009-08-111-1/+1
| | | | llvm-svn: 78691
* minor refactoring. No change otherwise.Fariborz Jahanian2009-08-101-0/+4
| | | | llvm-svn: 78582
* ir-gen for initialization, in synthesize copy constructor, Fariborz Jahanian2009-08-081-1/+2
| | | | | | of base/field which have trivial copy constructor. llvm-svn: 78516
OpenPOWER on IntegriCloud