aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-11-15Finish off zero check for typeid(*p) so that it will do a __cxa_bad_typeid.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88852 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Implement typeid for class types.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Finish off support for typeinfo generation for classes.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88828 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Finisgh off rest of class_type_info rtti generation.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88823 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Handle CK_BitCast in EmitCastLValue.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Canonicalize the type before trying to create a debug type.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88808 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Have CGDebugInfo::getOrCreateType cache the QualType instead of having every ↵Anders Carlsson
ConvertType overload do it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88807 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Build up more of the rtti info for a class. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88795 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Add the name to the rtti data structure.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Avoid assert-crash in a case where the expression passed to EmitConstantExprEli Friedman
legitimately has side-effects (and needs to be generated as a non-constant). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88767 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Make __func__ and friends work correctly within the initializer for a staticEli Friedman
local variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88766 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14PR5483: Generate missing form of destructor when it is virtual. (SomeoneEli Friedman
more familiar with this stuff should double-check that there isn't some more general rule; this is purely from inspecting g++ output.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Generate the old API when sending message to superFariborz Jahanian
in a category implementation (objc 32bit api related). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88735 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Mangling support for typeinfo names.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88726 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Handle descructor printing better.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88723 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Also track address points for primaries bases.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88717 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Code gen. For virtual destructor call on array objectsFariborz Jahanian
(still part of pr5472). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88712 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Obvious fix for PR5474.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88696 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Fixes a code gen. bug for array delete operator callFariborz Jahanian
int 32bit abi (pr5472 related). -This line, and those below, will be ignored-- M lib/CodeGen/CGCXXExpr.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88695 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Code gen for arrady delete operator. Fixes pr5472.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88680 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Do not store DIDescriptor directly into a container. Store MDNode directly, ↵Devang Patel
through TrackingVH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13This falls into the category of stupid pet tricks. I hate to do this,Mike Stump
but this is necessary to continue work on virtual vtables. We don't want to penalize virtual table building testcases, just because complex virtual conversions don't yet work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88676 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Instead of storing CXXMethodDecls in the vtable builder, store GlobalDecls ↵Anders Carlsson
so we can represent both the complete and deleting destructors. Also, when encountering a destructor decl, emit entries for both the complete and deleting destructors. Mike, please review. With this change, FileCheck builds and runs the clang test suite without failures! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88663 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Wherein the TargetInfo argument to Preprocessor is made 'const' and propogated.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87087 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Include header for printf.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87086 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Add a special BuildVirtualCall that's going to be used for building calls to ↵Anders Carlsson
destructors. This is needed because when compiling: struct A { virtual ~A(); }; void f(A* a) { delete a; } A's deleting destructor should be called. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87083 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Fix two bugs with temporaries:Anders Carlsson
1. For A f() { return A(); } we were incorrectly calling the A destructor on the returned object. 2. For void f(A); void g() { A a; f(a); } we were incorrectly not calling the copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87082 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Move GlobalDecl to its own file. Also add DenseMapInfo traits.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87081 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Refine construction vtables; they don't include bits that don't haveMike Stump
virtual bases unless they are morally virtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87071 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Refine the construction vtables with respect to offsets. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87067 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Allow the tracking of address points for construction vtables as well.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87063 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Refine which vtbl is refernced in VTTs.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87043 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Refine offsets into vtables for the VTT.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87041 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Refine vtable pointers for secondary vtables inside VTTs to point toMike Stump
the right base vtable. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Fix the offset calculations for non-virtual bases with overrides.Mike Stump
Refine the VTT entries for virtual bases to refer to the complete object's vtable instead of constructor vtables. Refine the AddressPoint calculations for VTT entries for virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87021 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Fix a code gen bug in i386-apple-darwin (objc fragile abi), sendingFariborz Jahanian
message to 'super'. Fixes radar 7205866. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87017 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12 "Attach debug info with llvm instructions" mode was enabled a month ago. ↵Devang Patel
Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87007 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Use getNameAsCString() instead of getName().data()Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87001 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.Chandler Carruth
This resolves the layering violation where CodeGen depended on Frontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86998 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12Do not use StringRef while using DebugInfo interface.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Fix ctor vtable name. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86879 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Push ctor vtable construction down further. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Do not eagerly set stop point for arguments. This misleads the debugger in ↵Devang Patel
identifying beginning of function body. Instead, create new location to attach with llvm.dbg.declare. This location is only used to find the context of the variable by the code generator, and it is not used to emit line number info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86862 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Value initialize non-class array members in ctor'sFariborz Jahanian
initializer list. Fixes PR5463. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86849 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11More VTT work. We now track offsets and use the ctor vtable builderMike Stump
interface. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86793 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Avoid generating additional destructor(s) for initialized constructedFariborz Jahanian
objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11Stub out most of the VTT building code. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86772 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Attach location info with llvm.dbg.declare.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Revert r86741; it doesn't handle virtual bases correctly.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86745 91177308-0d34-0410-b5e6-96231b3b80d8