summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix rtti generation for throws. WIP.Mike Stump2009-11-201-9/+1
| | | | llvm-svn: 89420
* Simplify rtti building code a little. Prep for reuse for throw rttiMike Stump2009-11-203-13/+11
| | | | | | generation. llvm-svn: 89416
* Fixup key function calculations.Mike Stump2009-11-202-7/+5
| | | | llvm-svn: 89412
* Draw a brighter line between "unresolved" expressions, where we have done theJohn McCall2009-11-191-2/+2
| | | | | | | | appropriate lookup and simply can't resolve the referrent yet, and "dependent scope" expressions, where we can't do the lookup yet because the entity we need to look into is a dependent type. llvm-svn: 89402
* Fixup address point computations. WIP.Mike Stump2009-11-191-18/+26
| | | | llvm-svn: 89386
* Refine vtable, rtti and rtti name instantiation so that they followMike Stump2009-11-191-24/+78
| | | | | | | | | | | the key function. All the code is wired up, but won't work yet, as I had to turn off key function calculation as it doesn't work yet. Also, we refine visibility of the vtable, rtti and rtti name to match the class, as well as as arrange for all the symbols to be internal for anonymous namespace entities. llvm-svn: 89309
* This doesn't work yet.Mike Stump2009-11-191-0/+5
| | | | llvm-svn: 89307
* Improve instantiation control for rtti data and allow key functions toMike Stump2009-11-194-31/+96
| | | | | | instantiate a class. WIP. llvm-svn: 89289
* Refine linkage on thunks. WIP.Mike Stump2009-11-191-2/+1
| | | | llvm-svn: 89287
* Reflow to fit 80-col.Mike Stump2009-11-181-2/+2
| | | | llvm-svn: 89222
* Trim whitespace.Mike Stump2009-11-181-1/+0
| | | | llvm-svn: 89219
* Minor cleanup to member pointer handling.Eli Friedman2009-11-181-7/+3
| | | | llvm-svn: 89201
* Clean up EmitPointerToDataMemberBinaryExpr a bit.Eli Friedman2009-11-181-7/+5
| | | | llvm-svn: 89197
* Set up vtable visibility appropriately.Mike Stump2009-11-181-7/+12
| | | | llvm-svn: 89193
* Propagate hidden to the _ZTS symbols appropriately. WIP.Mike Stump2009-11-181-16/+26
| | | | llvm-svn: 89191
* Add an assertion to catch bad calls to EmitCallArgs.Eli Friedman2009-11-181-0/+1
| | | | llvm-svn: 89190
* Be sure to set visibility for ZTI symbols for classes from the class.Mike Stump2009-11-181-5/+8
| | | | llvm-svn: 89186
* Make _ZTI symbols hidden. This speeds up the dynamic linker.Mike Stump2009-11-181-0/+1
| | | | llvm-svn: 89185
* Missing piece of r89173.Eli Friedman2009-11-181-0/+3
| | | | llvm-svn: 89174
* Refactor emitting call to delete operator into common function EmitDeleteCall.Eli Friedman2009-11-182-46/+32
| | | | llvm-svn: 89173
* Fix one last gotcha with typeid.Mike Stump2009-11-181-0/+1
| | | | llvm-svn: 89172
* Cleanup.Mike Stump2009-11-171-3/+3
| | | | llvm-svn: 89166
* Add rtti support for arrays, functiond without prototypes, vectors andMike Stump2009-11-171-15/+13
| | | | | | enums. llvm-svn: 89165
* Add rtti info for function prototypes and refactor. This allowsMike Stump2009-11-171-47/+60
| | | | | | pointer to member functions to work. WIP. llvm-svn: 89161
* This patch finalizes implementatin of weak_importFariborz Jahanian2009-11-171-0/+6
| | | | | | objective-c2 classes (radar 6815425). llvm-svn: 89157
* Add rtti support for pointer to data members.Mike Stump2009-11-172-5/+10
| | | | llvm-svn: 89155
* More cases for weak_import objective-c2 classes.Fariborz Jahanian2009-11-171-0/+3
| | | | | | (still radar 6815425). llvm-svn: 89152
* Add rtti support for non-member pointers. WIP.Mike Stump2009-11-171-12/+81
| | | | llvm-svn: 89148
* More support for weak_import objective-c2 class.Fariborz Jahanian2009-11-171-0/+27
| | | | | | (radar 6815425). llvm-svn: 89146
* Added block type introspection support.David Chisnall2009-11-172-11/+61
| | | | | | As per Fariborz's suggestion, committed now but can be reverted later if the used flag is problematic for Apple. llvm-svn: 89134
* Fixed bug where ivar offsets were being initialized as 0 with the fragile ↵David Chisnall2009-11-171-1/+1
| | | | | | GNU ABI. llvm-svn: 89133
* Skip over shadow using decls during codegen.John McCall2009-11-171-0/+1
| | | | llvm-svn: 89079
* Unify the way destructor epilogues are generated for synthesized and regular ↵Anders Carlsson2009-11-171-103/+79
| | | | | | destructors. Also fix PR5529. llvm-svn: 89034
* More const is always good.Anders Carlsson2009-11-172-6/+6
| | | | llvm-svn: 89033
* Fix typo. Thanks Ted.Mike Stump2009-11-171-1/+1
| | | | llvm-svn: 89031
* Add typeinfo support for T* and const T* for all builtin types T.Mike Stump2009-11-171-0/+13
| | | | llvm-svn: 89030
* Add typeid for the builtin types. WIP.Mike Stump2009-11-173-11/+40
| | | | llvm-svn: 89028
* Ensure we peer through () when handling typeid(*p).Mike Stump2009-11-171-1/+1
| | | | llvm-svn: 89015
* Since we always have 2 edges, we don't need to reserve 3 slot for theMike Stump2009-11-171-1/+1
| | | | | | PHI node. llvm-svn: 89005
* Minor CFG refinements for typeid and dynamic_cast.Mike Stump2009-11-171-4/+1
| | | | llvm-svn: 89004
* Fix up EmitMemberInitializer to handle many more cases.Eli Friedman2009-11-161-11/+24
| | | | llvm-svn: 88999
* Reorganize EmitMemberInitializer to put anonymous unions on the common codepath.Eli Friedman2009-11-161-29/+31
| | | | llvm-svn: 88995
* Make member initializers for union members work correctly.Eli Friedman2009-11-161-1/+1
| | | | llvm-svn: 88989
* Implement dynamic_cast<void*>(E).Mike Stump2009-11-161-51/+64
| | | | llvm-svn: 88988
* Implement a few more cases for copy constructor synthesis.Eli Friedman2009-11-161-2/+10
| | | | llvm-svn: 88971
* First part of changes to eliminate problems with cv-qualifiers andDouglas Gregor2009-11-162-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sugared types. The basic problem is that our qualifier accessors (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at the current QualType and not at any qualifiers that come from sugared types, meaning that we won't see these qualifiers through, e.g., typedefs: typedef const int CInt; typedef CInt Self; Self.isConstQualified() currently returns false! Various bugs (e.g., PR5383) have cropped up all over the front end due to such problems. I'm addressing this problem by splitting each qualifier accessor into two versions: - the "local" version only returns qualifiers on this particular QualType instance - the "normal" version that will eventually combine qualifiers from this QualType instance with the qualifiers on the canonical type to produce the full set of qualifiers. This commit adds the local versions and switches a few callers from the "normal" version (e.g., isConstQualified) over to the "local" version (e.g., isLocalConstQualified) when that is the right thing to do, e.g., because we're printing or serializing the qualifiers. Also, switch a bunch of Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType() expressions over to Context.hasSameUnqualifiedType(T1, T2) llvm-svn: 88969
* Clean up scalar cast kind handling; make cast kind handling explicitly handleEli Friedman2009-11-161-36/+61
| | | | | | more cases. No intended visible change. llvm-svn: 88968
* Audit done, all the required casts are already done.Mike Stump2009-11-161-2/+0
| | | | llvm-svn: 88966
* revert r88963.Devang Patel2009-11-161-1/+0
| | | | llvm-svn: 88965
* Use TrackingVH to hold forward decl. This one is for RecordType.Devang Patel2009-11-161-0/+1
| | | | llvm-svn: 88963
OpenPOWER on IntegriCloud