summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCXX.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* And now we can generate a simple vtable. Still a work in progress...Mike Stump2009-07-311-11/+23
| | | | llvm-svn: 77737
* Update for LLVM API change.Owen Anderson2009-07-311-4/+4
| | | | llvm-svn: 77722
* Add code to setup the vtable pointer in the constructor. Work in progress.Mike Stump2009-07-311-6/+51
| | | | llvm-svn: 77699
* Update for LLVM API changes.Owen Anderson2009-07-301-1/+1
| | | | llvm-svn: 77638
* Canonicalize else spacing.Mike Stump2009-07-301-4/+2
| | | | llvm-svn: 77629
* Note some other limitations.Mike Stump2009-07-301-1/+9
| | | | llvm-svn: 77626
* Patch for future ir-gen for destructor calls.Fariborz Jahanian2009-07-301-1/+41
| | | | llvm-svn: 77608
* ir-gen for nested non-virtual base member accessFariborz Jahanian2009-07-301-5/+47
| | | | | | in current class. llvm-svn: 77554
* Update for LLVM API change.Owen Anderson2009-07-291-3/+3
| | | | llvm-svn: 77514
* Change uses of:Ted Kremenek2009-07-291-3/+3
| | | | | | | | | | | | | | | | | | | | Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. llvm-svn: 77510
* Use the existing API for base offset. Use suitable llvm typeFariborz Jahanian2009-07-291-20/+4
| | | | | | for offset ir-gen. llvm-svn: 77458
* More cleanup of data member access and then some.Fariborz Jahanian2009-07-281-2/+9
| | | | llvm-svn: 77351
* Some code cleanup.Fariborz Jahanian2009-07-281-24/+9
| | | | llvm-svn: 77339
* More work toward data member access ir-gen.Fariborz Jahanian2009-07-281-0/+36
| | | | llvm-svn: 77332
* ir-gen for non-virtual base class initializationFariborz Jahanian2009-07-251-3/+31
| | | | | | in constructors. llvm-svn: 77087
* Update for LLVM API change.Owen Anderson2009-07-241-2/+2
| | | | llvm-svn: 77012
* More work toward initialization of objectsFariborz Jahanian2009-07-241-3/+12
| | | | | | in constructors. llvm-svn: 76980
* Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs.Fariborz Jahanian2009-07-201-0/+33
| | | | llvm-svn: 76498
* Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek2009-07-171-1/+1
| | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193
* Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), ↵Ted Kremenek2009-07-171-1/+1
| | | | | | Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. llvm-svn: 76139
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-141-8/+8
| | | | llvm-svn: 75705
* Update for LLVM API change.Owen Anderson2009-07-131-4/+4
| | | | llvm-svn: 75446
* Update for LLVM API change.Owen Anderson2009-07-081-5/+2
| | | | llvm-svn: 75028
* Update for LLVM API change.Owen Anderson2009-07-081-1/+3
| | | | llvm-svn: 74986
* De-ASTContext-ify DeclContext.Argyrios Kyrtzidis2009-06-301-2/+2
| | | | | | | Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating". Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit. llvm-svn: 74506
* Move code generation of C++ temporaries into a new file.Anders Carlsson2009-06-031-37/+0
| | | | llvm-svn: 72792
* Fix a thinko.Anders Carlsson2009-06-011-1/+1
| | | | llvm-svn: 72679
* Check for null correctly for new expressions.Anders Carlsson2009-06-011-4/+32
| | | | llvm-svn: 72678
* Improve irgen of 'new' further.Anders Carlsson2009-05-311-8/+24
| | | | llvm-svn: 72677
* ...and aggregate POD types.Anders Carlsson2009-05-311-4/+2
| | | | llvm-svn: 72676
* Support for complex types.Anders Carlsson2009-05-311-2/+4
| | | | llvm-svn: 72675
* Better support for scalar POD types in 'new' expressions.Anders Carlsson2009-05-311-11/+20
| | | | llvm-svn: 72674
* Very basic irgen support for new expressions.Anders Carlsson2009-05-311-2/+72
| | | | llvm-svn: 72672
* Add a new function for emitting new functions.Anders Carlsson2009-05-311-0/+5
| | | | llvm-svn: 72656
* Emit destructors correctly for temporaries.Anders Carlsson2009-05-311-1/+27
| | | | llvm-svn: 72655
* More temporary support.Anders Carlsson2009-05-301-0/+11
| | | | llvm-svn: 72648
* Add code for emitting C++ destructors. Not used yet.Anders Carlsson2009-05-291-0/+8
| | | | llvm-svn: 72591
* Handle operator call expressions where the callee is a member function.Anders Carlsson2009-05-271-0/+19
| | | | llvm-svn: 72458
* Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't ↵Anders Carlsson2009-05-201-1/+0
| | | | | | support anything but at least we don't crash ;) llvm-svn: 72147
* Reflow some comments.Mike Stump2009-05-161-0/+2
| | | | llvm-svn: 71937
* push GlobalDecl through enough of the CodeGenModule interfacesChris Lattner2009-05-121-4/+5
| | | | | | | | | to allow us to support generation of deferred ctors/dtors. It looks like codegen isn't emitting a call to the dtor in member-functions.cpp:test2, but when it does, its body should get emitted. llvm-svn: 71594
* Factor code that's common to EmitCXXMemberCallExpr and ↵Anders Carlsson2009-05-111-27/+34
| | | | | | EmitCXXConstructorCall out into a EmitCXXMemberCall function. llvm-svn: 71514
* Refactor global decls to hold either a regular Decl or a CXXConstructorDecl ↵Anders Carlsson2009-05-051-2/+2
| | | | | | + ctor type or a CXXDestructorDecl + dtor type. llvm-svn: 70962
* Make codegen for constructors work again.Anders Carlsson2009-05-031-14/+2
| | | | llvm-svn: 70785
* We can now call member functions where the base is a pointer.Anders Carlsson2009-05-011-4/+1
| | | | llvm-svn: 70579
* Add support for generating (very basic) C++ destructors. These aren't called ↵Anders Carlsson2009-04-171-26/+65
| | | | | | by anything yet. llvm-svn: 69343
* Implement basic code generation of constructor calls. We can now compile:Anders Carlsson2009-04-171-0/+45
| | | | | | | | | | | | struct S { S(int, int); }; void f() { S s(10, 10); } llvm-svn: 69330
* Add GetAddrOfCXXConstructor and use it.Anders Carlsson2009-04-161-5/+11
| | | | llvm-svn: 69328
* Actually generate code for the simple constructors we know we can generate ↵Anders Carlsson2009-04-151-1/+22
| | | | | | code for. llvm-svn: 69222
* Start attempting to generate code for C++ ctors.Anders Carlsson2009-04-151-1/+32
| | | | llvm-svn: 69168
OpenPOWER on IntegriCloud