#
d172e91f |
| 17-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
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 <eli.friedman@gmail.com> |
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 <sabre@nondot.org> |
minor cleanups for VLA stuff.
llvm-svn: 79059
|
#
41a75027 |
| 13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change.
llvm-svn: 78946
|
#
de7d4c26 |
| 12-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch for synthesizing copy assignment operator. WIP.
llvm-svn: 78841
|
#
9d3405ce |
| 10-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
minor refactoring. No change otherwise.
llvm-svn: 78582
|
#
f48123b4 |
| 09-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Improve handling of member pointers.
llvm-svn: 78536
|
#
b8be93fc |
| 08-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Add support for global initializers.
llvm-svn: 78515
|
#
f6bda5d6 |
| 08-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Refactoring of copy ctor ir-gen. No change in functionality.
llvm-svn: 78489
|
#
b68df0bc |
| 07-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
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 <fjahanian@apple.com> |
More synthesis of copy constructors. Work in progress.
llvm-svn: 78402
|
#
9301b24c |
| 06-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch toward synthesizing copy constructors. Work in progress.
llvm-svn: 78355
|
#
0b75f23b |
| 31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change.
llvm-svn: 77722
|
#
6f14c730 |
| 30-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Synthesize the default constructor which has not been declared as needed.
llvm-svn: 77641
|
#
7ec07a57 |
| 30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API changes.
llvm-svn: 77638
|
#
aa01d2a5 |
| 30-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch for future ir-gen for destructor calls.
llvm-svn: 77608
|
#
9793f0e4 |
| 29-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change.
llvm-svn: 77514
|
#
c23c7e6a |
| 29-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
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 <resistor@mac.com> |
Update for LLVM API change.
llvm-svn: 77012
|
#
7c02cf60 |
| 23-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Shield clang from LLVM API changes, until the dust settles.
llvm-svn: 76862
|
#
83381cc9 |
| 20-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs.
llvm-svn: 76498
|
#
127059c7 |
| 20-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Early ir-gen for constructor prologue. This is on going.
llvm-svn: 76493
|
#
94e12450 |
| 20-Jul-2009 |
Mike Stump <mrs@apple.com> |
Remove an apparently unused header.
llvm-svn: 76473
|
#
ea3060a9 |
| 19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Catch another trivial case where we can avoid emitting a separate return blcok.
llvm-svn: 76365
|
#
b6adc43f |
| 19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
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 ...
|