| #
d172e91f |
| 17-Aug-2009 |
Fariborz Jahanian <[email protected]> |
Patch to 1) synthesizing non-trivial default destructor when one is not provided by user. 2) More complete emission of ctor prologue when it has no initializer list or when it is synthesized.
llvm-s
Patch to 1) synthesizing non-trivial default destructor when one is not provided by user. 2) More complete emission of ctor prologue when it has no initializer list or when it is synthesized.
llvm-svn: 79269
show more ...
|
| #
04fddf0d |
| 15-Aug-2009 |
Eli Friedman <[email protected]> |
Fix for PR4721: adjust CodeGen and ASTContext so that we have a consistent model for handling size expressions for VLAs.
The model is essentially as follows: VLA types own their associated expressi
Fix for PR4721: adjust CodeGen and ASTContext so that we have a consistent model for handling size expressions for VLAs.
The model is essentially as follows: VLA types own their associated expression. In some cases, we need to create multiple VLA types to represent a given VLA (for canonical types, or qualifiers on array types, or type merging). If we need to create multiple types based off of the same VLA declaration, we use the new refcounting functionality so they can all own the expression. The VLASizeMap in CodeGenFunction then uses the size expression to identify the group of VLA types based off of the same original declaration.
I'm not particularly attached to the VLA types owning the expression, but we're stuck with at least until someone comes up with a way to walk the VLA expressions for a declaration.
I did the parallel fix in ASTContext for DependentSizedArrayType, but I haven't really looked closely at it, so there might still be issues there.
I'll clean up the code duplication in ASTContext in a followup commit.
llvm-svn: 79071
show more ...
|
| #
8dc7626f |
| 15-Aug-2009 |
Chris Lattner <[email protected]> |
minor cleanups for VLA stuff.
llvm-svn: 79059
|
| #
41a75027 |
| 13-Aug-2009 |
Owen Anderson <[email protected]> |
Update for LLVM API change.
llvm-svn: 78946
|
| #
de7d4c26 |
| 12-Aug-2009 |
Fariborz Jahanian <[email protected]> |
Patch for synthesizing copy assignment operator. WIP.
llvm-svn: 78841
|
| #
9d3405ce |
| 10-Aug-2009 |
Fariborz Jahanian <[email protected]> |
minor refactoring. No change otherwise.
llvm-svn: 78582
|
| #
f48123b4 |
| 09-Aug-2009 |
Anders Carlsson <[email protected]> |
Improve handling of member pointers.
llvm-svn: 78536
|
| #
b8be93fc |
| 08-Aug-2009 |
Anders Carlsson <[email protected]> |
Add support for global initializers.
llvm-svn: 78515
|
| #
f6bda5d6 |
| 08-Aug-2009 |
Fariborz Jahanian <[email protected]> |
Refactoring of copy ctor ir-gen. No change in functionality.
llvm-svn: 78489
|
| #
b68df0bc |
| 07-Aug-2009 |
Fariborz Jahanian <[email protected]> |
Synthesized copy constructor now generates code for copying non-virtual base classes which have non-trivial constructor. Work in progress.
llvm-svn: 78436
|
| #
40134e71 |
| 07-Aug-2009 |
Fariborz Jahanian <[email protected]> |
More synthesis of copy constructors. Work in progress.
llvm-svn: 78402
|
| #
9301b24c |
| 06-Aug-2009 |
Fariborz Jahanian <[email protected]> |
Patch toward synthesizing copy constructors. Work in progress.
llvm-svn: 78355
|
| #
0b75f23b |
| 31-Jul-2009 |
Owen Anderson <[email protected]> |
Update for LLVM API change.
llvm-svn: 77722
|
| #
6f14c730 |
| 30-Jul-2009 |
Fariborz Jahanian <[email protected]> |
Synthesize the default constructor which has not been declared as needed.
llvm-svn: 77641
|
| #
7ec07a57 |
| 30-Jul-2009 |
Owen Anderson <[email protected]> |
Update for LLVM API changes.
llvm-svn: 77638
|
| #
aa01d2a5 |
| 30-Jul-2009 |
Fariborz Jahanian <[email protected]> |
Patch for future ir-gen for destructor calls.
llvm-svn: 77608
|
| #
9793f0e4 |
| 29-Jul-2009 |
Owen Anderson <[email protected]> |
Update for LLVM API change.
llvm-svn: 77514
|
| #
c23c7e6a |
| 29-Jul-2009 |
Ted Kremenek <[email protected]> |
Change uses of: Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::ge
Change uses of: 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
show more ...
|
| #
b7a2fe6f |
| 24-Jul-2009 |
Owen Anderson <[email protected]> |
Update for LLVM API change.
llvm-svn: 77012
|
| #
7c02cf60 |
| 23-Jul-2009 |
Daniel Dunbar <[email protected]> |
Shield clang from LLVM API changes, until the dust settles.
llvm-svn: 76862
|
| #
83381cc9 |
| 20-Jul-2009 |
Fariborz Jahanian <[email protected]> |
Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs.
llvm-svn: 76498
|
| #
127059c7 |
| 20-Jul-2009 |
Fariborz Jahanian <[email protected]> |
Early ir-gen for constructor prologue. This is on going.
llvm-svn: 76493
|
| #
94e12450 |
| 20-Jul-2009 |
Mike Stump <[email protected]> |
Remove an apparently unused header.
llvm-svn: 76473
|
| #
ea3060a9 |
| 19-Jul-2009 |
Daniel Dunbar <[email protected]> |
Catch another trivial case where we can avoid emitting a separate return blcok.
llvm-svn: 76365
|
| #
b6adc43f |
| 19-Jul-2009 |
Daniel Dunbar <[email protected]> |
Avoid generation of dead code in a few more situations. - Emit variable declarations as "simple", we want to avoid forcing the creation of a dummy basic block, but still need to make the variable
Avoid generation of dead code in a few more situations. - Emit variable declarations as "simple", we want to avoid forcing the creation of a dummy basic block, but still need to make the variable available for later use.
- With that, we can now skip IRgen for other unreachable statements (which don't define a label).
- Anders, I added two fixmes on calls to EmitVLASize, can you check them?
llvm-svn: 76361
show more ...
|