Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Canonicalize the type before trying to create a debug type. | Anders Carlsson | 2009-11-14 | 1 | -26/+26 | |
| | | | | llvm-svn: 88808 | |||||
* | Have CGDebugInfo::getOrCreateType cache the QualType instead of having every ↵ | Anders Carlsson | 2009-11-14 | 1 | -19/+4 | |
| | | | | | | ConvertType overload do it. llvm-svn: 88807 | |||||
* | Build up more of the rtti info for a class. WIP. | Mike Stump | 2009-11-14 | 1 | -26/+49 | |
| | | | | llvm-svn: 88795 | |||||
* | Add the name to the rtti data structure. | Mike Stump | 2009-11-14 | 1 | -4/+35 | |
| | | | | llvm-svn: 88792 | |||||
* | Avoid assert-crash in a case where the expression passed to EmitConstantExpr | Eli Friedman | 2009-11-14 | 1 | -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 static | Eli Friedman | 2009-11-14 | 1 | -6/+8 | |
| | | | | | | local variable. llvm-svn: 88766 | |||||
* | PR5483: Generate missing form of destructor when it is virtual. (Someone | Eli Friedman | 2009-11-14 | 1 | -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 super | Fariborz Jahanian | 2009-11-14 | 1 | -1/+4 | |
| | | | | | | in a category implementation (objc 32bit api related). llvm-svn: 88741 | |||||
* | Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484. | Anders Carlsson | 2009-11-14 | 1 | -2/+4 | |
| | | | | llvm-svn: 88735 | |||||
* | Mangling support for typeinfo names. | Mike Stump | 2009-11-14 | 2 | -0/+18 | |
| | | | | llvm-svn: 88726 | |||||
* | Handle descructor printing better. | Mike Stump | 2009-11-13 | 1 | -6/+7 | |
| | | | | llvm-svn: 88723 | |||||
* | Also track address points for primaries bases. | Mike Stump | 2009-11-13 | 1 | -4/+27 | |
| | | | | llvm-svn: 88717 | |||||
* | Code gen. For virtual destructor call on array objects | Fariborz Jahanian | 2009-11-13 | 2 | -2/+10 | |
| | | | | | | (still part of pr5472). llvm-svn: 88712 | |||||
* | Obvious fix for PR5474. | Eli Friedman | 2009-11-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 88696 | |||||
* | Fixes a code gen. bug for array delete operator call | Fariborz Jahanian | 2009-11-13 | 1 | -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 Jahanian | 2009-11-13 | 3 | -10/+45 | |
| | | | | llvm-svn: 88680 | |||||
* | Do not store DIDescriptor directly into a container. Store MDNode directly, ↵ | Devang Patel | 2009-11-13 | 2 | -15/+14 | |
| | | | | | | through TrackingVH. llvm-svn: 88677 | |||||
* | This falls into the category of stupid pet tricks. I hate to do this, | Mike Stump | 2009-11-13 | 1 | -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 Carlsson | 2009-11-13 | 3 | -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 Dunbar | 2009-11-13 | 3 | -4/+4 | |
| | | | | llvm-svn: 87087 | |||||
* | Include header for printf. | Zhongxing Xu | 2009-11-13 | 1 | -0/+1 | |
| | | | | llvm-svn: 87086 | |||||
* | Add a special BuildVirtualCall that's going to be used for building calls to ↵ | Anders Carlsson | 2009-11-13 | 3 | -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 Carlsson | 2009-11-13 | 1 | -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 Carlsson | 2009-11-13 | 2 | -39/+111 | |
| | | | | llvm-svn: 87081 | |||||
* | Refine construction vtables; they don't include bits that don't have | Mike Stump | 2009-11-13 | 1 | -0/+5 | |
| | | | | | | virtual bases unless they are morally virtual. llvm-svn: 87071 | |||||
* | Refine the construction vtables with respect to offsets. WIP. | Mike Stump | 2009-11-13 | 1 | -15/+15 | |
| | | | | llvm-svn: 87067 | |||||
* | Allow the tracking of address points for construction vtables as well. | Mike Stump | 2009-11-13 | 2 | -28/+46 | |
| | | | | llvm-svn: 87063 | |||||
* | Refine which vtbl is refernced in VTTs. | Mike Stump | 2009-11-12 | 1 | -6/+12 | |
| | | | | llvm-svn: 87043 | |||||
* | Refine offsets into vtables for the VTT. | Mike Stump | 2009-11-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 87041 | |||||
* | Refine vtable pointers for secondary vtables inside VTTs to point to | Mike Stump | 2009-11-12 | 1 | -19/+32 | |
| | | | | | | the right base vtable. WIP. llvm-svn: 87039 | |||||
* | Fix the offset calculations for non-virtual bases with overrides. | Mike Stump | 2009-11-12 | 2 | -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), sending | Fariborz Jahanian | 2009-11-12 | 1 | -6/+38 | |
| | | | | | | message to 'super'. Fixes radar 7205866. llvm-svn: 87017 | |||||
* | "Attach debug info with llvm instructions" mode was enabled a month ago. ↵ | Devang Patel | 2009-11-12 | 3 | -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 Patel | 2009-11-12 | 1 | -13/+13 | |
| | | | | llvm-svn: 87001 | |||||
* | Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library. | Chandler Carruth | 2009-11-12 | 6 | -27/+27 | |
| | | | | | | This resolves the layering violation where CodeGen depended on Frontend. llvm-svn: 86998 | |||||
* | Do not use StringRef while using DebugInfo interface. | Devang Patel | 2009-11-12 | 1 | -37/+30 | |
| | | | | llvm-svn: 86915 | |||||
* | Fix ctor vtable name. WIP. | Mike Stump | 2009-11-11 | 1 | -1/+1 | |
| | | | | llvm-svn: 86879 | |||||
* | Push ctor vtable construction down further. WIP. | Mike Stump | 2009-11-11 | 3 | -11/+22 | |
| | | | | llvm-svn: 86878 | |||||
* | Do not eagerly set stop point for arguments. This misleads the debugger in ↵ | Devang Patel | 2009-11-11 | 1 | -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's | Fariborz Jahanian | 2009-11-11 | 1 | -1/+8 | |
| | | | | | | initializer list. Fixes PR5463. llvm-svn: 86849 | |||||
* | More VTT work. We now track offsets and use the ctor vtable builder | Mike Stump | 2009-11-11 | 2 | -11/+27 | |
| | | | | | | interface. WIP. llvm-svn: 86793 | |||||
* | Avoid generating additional destructor(s) for initialized constructed | Fariborz Jahanian | 2009-11-11 | 1 | -0/+3 | |
| | | | | | | objects. llvm-svn: 86778 | |||||
* | Stub out most of the VTT building code. WIP. | Mike Stump | 2009-11-11 | 1 | -2/+83 | |
| | | | | llvm-svn: 86772 | |||||
* | Attach location info with llvm.dbg.declare. | Devang Patel | 2009-11-10 | 1 | -1/+4 | |
| | | | | llvm-svn: 86750 | |||||
* | Revert r86741; it doesn't handle virtual bases correctly. | Eli Friedman | 2009-11-10 | 1 | -11/+9 | |
| | | | | llvm-svn: 86745 | |||||
* | Minor optimization to skip null check in generated code where it isn't | Eli Friedman | 2009-11-10 | 1 | -9/+11 | |
| | | | | | | necessary. llvm-svn: 86741 | |||||
* | Fix for PR5454: make sure to use the right block as the predecessor in the | Eli Friedman | 2009-11-10 | 1 | -0/+1 | |
| | | | | | | generated PHI node for the null check of a new operator. llvm-svn: 86738 | |||||
* | This patch implements Code gen. for destruction of | Fariborz Jahanian | 2009-11-10 | 2 | -8/+68 | |
| | | | | | | global array of objects. llvm-svn: 86701 | |||||
* | Only generate a VTT for classes that need a VTT. | Mike Stump | 2009-11-10 | 1 | -0/+4 | |
| | | | | llvm-svn: 86699 | |||||
* | Add vtable caching to prevent multiple vtables for the same class from | Mike Stump | 2009-11-10 | 5 | -24/+41 | |
| | | | | | | | | being generated. Add the most derived vtable pointer to the VTT. llvm-svn: 86671 |