summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Canonicalize the type before trying to create a debug type.Anders Carlsson2009-11-141-26/+26
| | | | llvm-svn: 88808
* Have CGDebugInfo::getOrCreateType cache the QualType instead of having every ↵Anders Carlsson2009-11-141-19/+4
| | | | | | ConvertType overload do it. llvm-svn: 88807
* Build up more of the rtti info for a class. WIP.Mike Stump2009-11-141-26/+49
| | | | llvm-svn: 88795
* Add the name to the rtti data structure.Mike Stump2009-11-141-4/+35
| | | | llvm-svn: 88792
* Avoid assert-crash in a case where the expression passed to EmitConstantExprEli Friedman2009-11-141-3/+1
| | | | | | legitimately has side-effects (and needs to be generated as a non-constant). llvm-svn: 88767
* Make __func__ and friends work correctly within the initializer for a staticEli Friedman2009-11-141-6/+8
| | | | | | local variable. llvm-svn: 88766
* PR5483: Generate missing form of destructor when it is virtual. (SomeoneEli Friedman2009-11-141-0/+2
| | | | | | | more familiar with this stuff should double-check that there isn't some more general rule; this is purely from inspecting g++ output.) llvm-svn: 88755
* Generate the old API when sending message to superFariborz Jahanian2009-11-141-1/+4
| | | | | | in a category implementation (objc 32bit api related). llvm-svn: 88741
* Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484.Anders Carlsson2009-11-141-2/+4
| | | | llvm-svn: 88735
* Mangling support for typeinfo names.Mike Stump2009-11-142-0/+18
| | | | llvm-svn: 88726
* Handle descructor printing better.Mike Stump2009-11-131-6/+7
| | | | llvm-svn: 88723
* Also track address points for primaries bases.Mike Stump2009-11-131-4/+27
| | | | llvm-svn: 88717
* Code gen. For virtual destructor call on array objectsFariborz Jahanian2009-11-132-2/+10
| | | | | | (still part of pr5472). llvm-svn: 88712
* Obvious fix for PR5474.Eli Friedman2009-11-131-1/+1
| | | | llvm-svn: 88696
* Fixes a code gen. bug for array delete operator callFariborz Jahanian2009-11-131-3/+6
| | | | | | | | | | int 32bit abi (pr5472 related). -This line, and those below, will be ignored-- M lib/CodeGen/CGCXXExpr.cpp llvm-svn: 88695
* Code gen for arrady delete operator. Fixes pr5472.Fariborz Jahanian2009-11-133-10/+45
| | | | llvm-svn: 88680
* Do not store DIDescriptor directly into a container. Store MDNode directly, ↵Devang Patel2009-11-132-15/+14
| | | | | | through TrackingVH. llvm-svn: 88677
* This falls into the category of stupid pet tricks. I hate to do this,Mike Stump2009-11-131-0/+3
| | | | | | | | 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. llvm-svn: 88676
* Instead of storing CXXMethodDecls in the vtable builder, store GlobalDecls ↵Anders Carlsson2009-11-133-61/+98
| | | | | | | | 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! llvm-svn: 88663
* Wherein the TargetInfo argument to Preprocessor is made 'const' and propogated.Daniel Dunbar2009-11-133-4/+4
| | | | llvm-svn: 87087
* Include header for printf.Zhongxing Xu2009-11-131-0/+1
| | | | llvm-svn: 87086
* Add a special BuildVirtualCall that's going to be used for building calls to ↵Anders Carlsson2009-11-133-28/+53
| | | | | | | | | | | | | | | | destructors. This is needed because when compiling: struct A { virtual ~A(); }; void f(A* a) { delete a; } A's deleting destructor should be called. llvm-svn: 87083
* Fix two bugs with temporaries:Anders Carlsson2009-11-131-2/+7
| | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 87082
* Move GlobalDecl to its own file. Also add DenseMapInfo traits.Anders Carlsson2009-11-132-39/+111
| | | | llvm-svn: 87081
* Refine construction vtables; they don't include bits that don't haveMike Stump2009-11-131-0/+5
| | | | | | virtual bases unless they are morally virtual. llvm-svn: 87071
* Refine the construction vtables with respect to offsets. WIP.Mike Stump2009-11-131-15/+15
| | | | llvm-svn: 87067
* Allow the tracking of address points for construction vtables as well.Mike Stump2009-11-132-28/+46
| | | | llvm-svn: 87063
* Refine which vtbl is refernced in VTTs.Mike Stump2009-11-121-6/+12
| | | | llvm-svn: 87043
* Refine offsets into vtables for the VTT.Mike Stump2009-11-121-1/+1
| | | | llvm-svn: 87041
* Refine vtable pointers for secondary vtables inside VTTs to point toMike Stump2009-11-121-19/+32
| | | | | | the right base vtable. WIP. llvm-svn: 87039
* Fix the offset calculations for non-virtual bases with overrides.Mike Stump2009-11-122-28/+94
| | | | | | | | | 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. llvm-svn: 87021
* Fix a code gen bug in i386-apple-darwin (objc fragile abi), sendingFariborz Jahanian2009-11-121-6/+38
| | | | | | message to 'super'. Fixes radar 7205866. llvm-svn: 87017
* "Attach debug info with llvm instructions" mode was enabled a month ago. ↵Devang Patel2009-11-123-47/+14
| | | | | | Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types. llvm-svn: 87007
* Use getNameAsCString() instead of getName().data()Devang Patel2009-11-121-13/+13
| | | | llvm-svn: 87001
* Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.Chandler Carruth2009-11-126-27/+27
| | | | | | This resolves the layering violation where CodeGen depended on Frontend. llvm-svn: 86998
* Do not use StringRef while using DebugInfo interface.Devang Patel2009-11-121-37/+30
| | | | llvm-svn: 86915
* Fix ctor vtable name. WIP.Mike Stump2009-11-111-1/+1
| | | | llvm-svn: 86879
* Push ctor vtable construction down further. WIP.Mike Stump2009-11-113-11/+22
| | | | llvm-svn: 86878
* Do not eagerly set stop point for arguments. This misleads the debugger in ↵Devang Patel2009-11-111-4/+19
| | | | | | 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. llvm-svn: 86862
* Value initialize non-class array members in ctor'sFariborz Jahanian2009-11-111-1/+8
| | | | | | initializer list. Fixes PR5463. llvm-svn: 86849
* More VTT work. We now track offsets and use the ctor vtable builderMike Stump2009-11-112-11/+27
| | | | | | interface. WIP. llvm-svn: 86793
* Avoid generating additional destructor(s) for initialized constructedFariborz Jahanian2009-11-111-0/+3
| | | | | | objects. llvm-svn: 86778
* Stub out most of the VTT building code. WIP.Mike Stump2009-11-111-2/+83
| | | | llvm-svn: 86772
* Attach location info with llvm.dbg.declare.Devang Patel2009-11-101-1/+4
| | | | llvm-svn: 86750
* Revert r86741; it doesn't handle virtual bases correctly.Eli Friedman2009-11-101-11/+9
| | | | llvm-svn: 86745
* Minor optimization to skip null check in generated code where it isn'tEli Friedman2009-11-101-9/+11
| | | | | | necessary. llvm-svn: 86741
* Fix for PR5454: make sure to use the right block as the predecessor in theEli Friedman2009-11-101-0/+1
| | | | | | generated PHI node for the null check of a new operator. llvm-svn: 86738
* This patch implements Code gen. for destruction ofFariborz Jahanian2009-11-102-8/+68
| | | | | | global array of objects. llvm-svn: 86701
* Only generate a VTT for classes that need a VTT.Mike Stump2009-11-101-0/+4
| | | | llvm-svn: 86699
* Add vtable caching to prevent multiple vtables for the same class fromMike Stump2009-11-105-24/+41
| | | | | | | | being generated. Add the most derived vtable pointer to the VTT. llvm-svn: 86671
OpenPOWER on IntegriCloud