aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-11-18Set up vtable visibility appropriately.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89193 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Propagate hidden to the _ZTS symbols appropriately. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89191 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Add an assertion to catch bad calls to EmitCallArgs.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89190 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Be sure to set visibility for ZTI symbols for classes from the class.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89186 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Make _ZTI symbols hidden. This speeds up the dynamic linker.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89185 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Missing piece of r89173.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89174 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Refactor emitting call to delete operator into common function EmitDeleteCall.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89173 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Fix one last gotcha with typeid.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89172 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Cleanup.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89166 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti support for arrays, functiond without prototypes, vectors andMike Stump
enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89165 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti info for function prototypes and refactor. This allowsMike Stump
pointer to member functions to work. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89161 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17This patch finalizes implementatin of weak_importFariborz Jahanian
objective-c2 classes (radar 6815425). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89157 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti support for pointer to data members.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89155 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17More cases for weak_import objective-c2 classes.Fariborz Jahanian
(still radar 6815425). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89152 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti support for non-member pointers. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89148 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17More support for weak_import objective-c2 class.Fariborz Jahanian
(radar 6815425). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89146 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Added block type introspection support.David Chisnall
As per Fariborz's suggestion, committed now but can be reverted later if the used flag is problematic for Apple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89134 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Fixed bug where ivar offsets were being initialized as 0 with the fragile ↵David Chisnall
GNU ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89133 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Skip over shadow using decls during codegen.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89079 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Unify the way destructor epilogues are generated for synthesized and regular ↵Anders Carlsson
destructors. Also fix PR5529. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89034 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17More const is always good.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Fix typo. Thanks Ted.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add typeinfo support for T* and const T* for all builtin types T.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89030 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add typeid for the builtin types. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89028 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Ensure we peer through () when handling typeid(*p).Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Since we always have 2 edges, we don't need to reserve 3 slot for theMike Stump
PHI node. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Minor CFG refinements for typeid and dynamic_cast.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89004 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Fix up EmitMemberInitializer to handle many more cases.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88999 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Reorganize EmitMemberInitializer to put anonymous unions on the common codepath.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88995 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Make member initializers for union members work correctly.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88989 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement dynamic_cast<void*>(E).Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88988 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement a few more cases for copy constructor synthesis.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88971 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16First part of changes to eliminate problems with cv-qualifiers andDouglas Gregor
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) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Clean up scalar cast kind handling; make cast kind handling explicitly handleEli Friedman
more cases. No intended visible change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88968 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Audit done, all the required casts are already done.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88966 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16revert r88963.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Use TrackingVH to hold forward decl. This one is for RecordType.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88963 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Parallel fix to r88951: use TrackingVH to hold forward decl.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88962 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Fix valgrind uninitialized error.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Use TrackingVH to hold forward decl.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88951 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Fixed two minor differences between clang and GCC-generated runtime ↵David Chisnall
structures for the GNU runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88937 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16The ssp and sspreq function attributes should only be applied to function ↵Anders Carlsson
definitions, not declarations or calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Pass a value for the isSigned parameter of CreateIntCast, rather thanDuncan Sands
passing the name (an exotic way of specifying that the result is signed!). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement most of dynamic_cast. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Make GetAddrOfConstantStringFromLiteral return a constant of the correct type.Eli Friedman
This doesn't have any visible effects at the moment because normally the implicit cast code forces the type to the expected type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88896 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Some minor cleanup for EmitCastLValue.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Fix a couple of cases where we weren't generating the right kind of callEli Friedman
for a call to a virtual function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88891 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement two-argument form of delete operator.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15When generating the deleting ctor, emit a call to delete.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Peer through refernces for typeid. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88871 91177308-0d34-0410-b5e6-96231b3b80d8