Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Handle base-to-derived casts. Will land test case shortly. | Anders Carlsson | 2009-11-23 | 1 | -4/+9 | |
| | | | | llvm-svn: 89678 | |||||
* | Fix lifetime of conditional temporaries. Patch by Victor Zverovich! | Anders Carlsson | 2009-11-20 | 1 | -12/+16 | |
| | | | | llvm-svn: 89467 | |||||
* | Add an assertion to catch bad calls to EmitCallArgs. | Eli Friedman | 2009-11-18 | 1 | -0/+1 | |
| | | | | llvm-svn: 89190 | |||||
* | Missing piece of r89173. | Eli Friedman | 2009-11-18 | 1 | -0/+3 | |
| | | | | llvm-svn: 89174 | |||||
* | More const is always good. | Anders Carlsson | 2009-11-17 | 1 | -2/+2 | |
| | | | | llvm-svn: 89033 | |||||
* | Implement most of dynamic_cast. WIP. | Mike Stump | 2009-11-16 | 1 | -0/+1 | |
| | | | | llvm-svn: 88901 | |||||
* | Implement typeid for class types. | Mike Stump | 2009-11-15 | 1 | -1/+4 | |
| | | | | llvm-svn: 88843 | |||||
* | Code gen for arrady delete operator. Fixes pr5472. | Fariborz Jahanian | 2009-11-13 | 1 | -0/+4 | |
| | | | | llvm-svn: 88680 | |||||
* | Wherein the TargetInfo argument to Preprocessor is made 'const' and propogated. | Daniel Dunbar | 2009-11-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 87087 | |||||
* | Add a special BuildVirtualCall that's going to be used for building calls to ↵ | Anders Carlsson | 2009-11-13 | 1 | -1/+4 | |
| | | | | | | | | | | | | | | | | 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 | |||||
* | This patch implements Code gen. for destruction of | Fariborz Jahanian | 2009-11-10 | 1 | -1/+5 | |
| | | | | | | global array of objects. llvm-svn: 86701 | |||||
* | Add vtable caching to prevent multiple vtables for the same class from | Mike Stump | 2009-11-10 | 1 | -6/+0 | |
| | | | | | | | | being generated. Add the most derived vtable pointer to the VTT. llvm-svn: 86671 | |||||
* | Be sure to clear out VCall when we clear out VCalls. | Mike Stump | 2009-11-10 | 1 | -0/+3 | |
| | | | | | | Start implementing VTTs. WIP. llvm-svn: 86650 | |||||
* | Change EmitPointerToDataMemberLValue to take a FieldDecl. No intended ↵ | Anders Carlsson | 2009-11-07 | 1 | -1/+2 | |
| | | | | | | functionality change. llvm-svn: 86407 | |||||
* | indirectbr seems to work! Rip out the old code. | Chris Lattner | 2009-11-06 | 1 | -20/+0 | |
| | | | | llvm-svn: 86256 | |||||
* | This patch extends CleanupScope to support destruction | Fariborz Jahanian | 2009-11-04 | 1 | -12/+25 | |
| | | | | | | of array objects on block exit. Patch is by Anders Calrsson. llvm-svn: 86032 | |||||
* | Refine volatile handling, specifically, we must have the canonical | Mike Stump | 2009-11-03 | 1 | -1/+1 | |
| | | | | | | | type to look at the volatile specifier. I found these all from just hand auditing the code. llvm-svn: 85967 | |||||
* | Refine return value adjustments for thunks. | Mike Stump | 2009-11-03 | 1 | -0/+5 | |
| | | | | llvm-svn: 85905 | |||||
* | Add CGException.cpp, to be used for exception related code generation. | Anders Carlsson | 2009-10-30 | 1 | -0/+2 | |
| | | | | llvm-svn: 85560 | |||||
* | optimize out some ifdefs. | Chris Lattner | 2009-10-29 | 1 | -4/+0 | |
| | | | | llvm-svn: 85453 | |||||
* | Implement clang support for indirect branch and address of label | Chris Lattner | 2009-10-28 | 1 | -0/+18 | |
| | | | | | | | | using the new LLVM support for this. This is temporarily hiding behind horrible and ugly #ifdefs until the time when the optimizer is stable (hopefully a week or so). Until then, lets make it "opt in" :) llvm-svn: 85446 | |||||
* | Eliminate QualifiedDeclRefExpr, which captured the notion of a | Douglas Gregor | 2009-10-23 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | | | | | | | | | | qualified reference to a declaration that is not a non-static data member or non-static member function, e.g., namespace N { int i; } int j = N::i; Instead, extend DeclRefExpr to optionally store the qualifier. Most clients won't see or care about the difference (since QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the number of top-level expression types that clients need to cope with, brings the implementation of DeclRefExpr into line with MemberExpr, and simplifies and unifies our handling of declaration references. Extended DeclRefExpr to (optionally) store explicitly-specified template arguments. This occurs when naming a declaration via a template-id (which will be stored in a TemplateIdRefExpr) that, following template argument deduction and (possibly) overload resolution, is replaced with a DeclRefExpr that refers to a template specialization but maintains the template arguments as written. llvm-svn: 84962 | |||||
* | Complete code gen for '.*' binary expression for | Fariborz Jahanian | 2009-10-22 | 1 | -1/+2 | |
| | | | | | | both scalar and aggregates. llvm-svn: 84910 | |||||
* | Code gen for pointer-to-datamember - WIP. | Fariborz Jahanian | 2009-10-21 | 1 | -0/+1 | |
| | | | | llvm-svn: 84771 | |||||
* | Prep work to always preallocate BlockDeclRefExprs so that we can | Mike Stump | 2009-10-21 | 1 | -0/+1 | |
| | | | | | | | generate the debug information for the first parameter to the block invoke functions. WIP. llvm-svn: 84737 | |||||
* | Code-gen for CXXZeroInitValueExpr AST passed | Fariborz Jahanian | 2009-10-20 | 1 | -1/+2 | |
| | | | | | | as argument to a function call. Removes a FIXME. llvm-svn: 84694 | |||||
* | Twinify CodeGenFunction::CreateTempAlloca | Daniel Dunbar | 2009-10-19 | 1 | -1/+2 | |
| | | | | llvm-svn: 84456 | |||||
* | reimplement codegen for indirect goto with the following advantages: | Chris Lattner | 2009-10-13 | 1 | -8/+7 | |
| | | | | | | | | | | | | | 1. CGF now has fewer bytes of state (one pointer instead of a vector). 2. The generated code is determinstic, instead of getting labels in 'map order' based on pointer addresses. 3. Clang now emits one 'indirect goto switch' for each function, instead of one for each indirect goto. This fixes an M*N = N^2 IR size issue when there are lots of address-taken labels and lots of indirect gotos. 4. This also makes the default cause do something useful, reducing the size of the jump table needed (by one). llvm-svn: 83952 | |||||
* | Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base ↵ | Anders Carlsson | 2009-10-06 | 1 | -0/+5 | |
| | | | | | | class offsets. Fix the code to handle virtual bases as well. llvm-svn: 83426 | |||||
* | Implement code generation of member function pointer calls. Fixes PR5121. | Anders Carlsson | 2009-10-03 | 1 | -0/+2 | |
| | | | | llvm-svn: 83271 | |||||
* | Move some functions from CodeGenFunctions to CodeGenModule so they can be ↵ | Anders Carlsson | 2009-10-03 | 1 | -5/+0 | |
| | | | | | | used by CGExprConstant. llvm-svn: 83263 | |||||
* | Handle CK_BaseToDerivedMemberPointer for member function pointers. Fixes PR5091. | Anders Carlsson | 2009-09-29 | 1 | -0/+5 | |
| | | | | llvm-svn: 83041 | |||||
* | CodeGen for try statements. (We just emit the body for now). | Anders Carlsson | 2009-09-27 | 1 | -0/+3 | |
| | | | | llvm-svn: 82910 | |||||
* | Refactor the representation of qualifiers to bring ExtQualType out of the | John McCall | 2009-09-24 | 1 | -0/+6 | |
| | | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705 | |||||
* | Add a new variant of EmitCXXAggrConstructorCall that takes a Value that ↵ | Anders Carlsson | 2009-09-23 | 1 | -2/+5 | |
| | | | | | | holds the number of elements to construct, to be used when implementing new[]. llvm-svn: 82602 | |||||
* | Code generation of Conditional operators that are lvalues (but that aren't ↵ | Anders Carlsson | 2009-09-15 | 1 | -1/+1 | |
| | | | | | | bitfields). llvm-svn: 81867 | |||||
* | Remove an unnecessary FunctionDecl parameter to the synthesizing functions. | Anders Carlsson | 2009-09-14 | 1 | -11/+11 | |
| | | | | llvm-svn: 81759 | |||||
* | Implement CodeGenFunction::EmitCXXExprWithTemporariesLValue. | Anders Carlsson | 2009-09-14 | 1 | -1/+2 | |
| | | | | llvm-svn: 81738 | |||||
* | Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a ↵ | Anders Carlsson | 2009-09-12 | 1 | -4/+5 | |
| | | | | | | NullCheckValue argument (currently unused). llvm-svn: 81606 | |||||
* | For __block variables, cache the LLVM types as well as which LLVM field ↵ | Anders Carlsson | 2009-09-12 | 1 | -0/+10 | |
| | | | | | | where the variable is stored. llvm-svn: 81599 | |||||
* | Add basic covariant thunk generation support. WIP. | Mike Stump | 2009-09-11 | 1 | -0/+4 | |
| | | | | llvm-svn: 81585 | |||||
* | Pass GlobalDecls to GenerateCode and StartFunction. | Anders Carlsson | 2009-09-11 | 1 | -6/+5 | |
| | | | | llvm-svn: 81485 | |||||
* | If a cast expression needs either a conversion function or a constructor to ↵ | Anders Carlsson | 2009-09-09 | 1 | -2/+0 | |
| | | | | | | be called, generate implicit child expressions that call them. llvm-svn: 81383 | |||||
* | Remove tabs, and whitespace cleanups. | Mike Stump | 2009-09-09 | 1 | -64/+64 | |
| | | | | llvm-svn: 81346 | |||||
* | Make BuildByRefType take a ValueDecl instead of a QualType and an alignment. | Anders Carlsson | 2009-09-09 | 1 | -2/+1 | |
| | | | | llvm-svn: 81315 | |||||
* | Install thunks later to fixup overrides. Track space taken by vbase | Mike Stump | 2009-09-05 | 1 | -2/+1 | |
| | | | | | | offsets better for thunk refinements. Cleanups. WIP. llvm-svn: 81067 | |||||
* | Add overidding for methods for vtable building for the secondary | Mike Stump | 2009-09-04 | 1 | -0/+5 | |
| | | | | | | vtables. Add thunk generation. WIP. llvm-svn: 81014 | |||||
* | Re-implemented generation of objc_memmove_collectable | Fariborz Jahanian | 2009-08-31 | 1 | -2/+3 | |
| | | | | | | API for copying GC'able aggregates (Next runtime only). llvm-svn: 80607 | |||||
* | ir-gen for type convesion of class objects. WIP. | Fariborz Jahanian | 2009-08-26 | 1 | -0/+2 | |
| | | | | llvm-svn: 80178 | |||||
* | Implement virtual dispatch. :-) This is self-consistent with clang, | Mike Stump | 2009-08-26 | 1 | -0/+2 | |
| | | | | | | | but not yet necessarily perfectly consistent with gcc. Also addressed Doug and John's comments. llvm-svn: 80137 |