- Feb 16, 2012
-
-
Fariborz Jahanian authored
as unscanned. // rdar://10832643 llvm-svn: 150639
-
Eric Christopher authored
This reverts commit 9a68d4584afcd0853b930bd80235b58736e785b4. llvm-svn: 150637
-
Eric Christopher authored
partial types for contexts and forward decls while allowing us to complete types later on for debug purposes. This piggy-backs on the metadata replacement and rauw changes for temporary nodes and takes advantage of the incremental support I added in earlier. This allows us to, if we decide, to limit adding methods and variables to structures in order to limit the amount of debug information output into a .o file. The caching is a bit complicated though so any thoughts on untangling that are welcome. llvm-svn: 150631
-
- Feb 15, 2012
-
-
John McCall authored
is general goodness because representations of member pointers are not always equivalent across member pointer types on all ABIs (even though this isn't really standard-endorsed). Take advantage of the new information to teach IR-generation how to do these reinterprets in constant initializers. Make sure this works when intermingled with hierarchy conversions (although this is not part of our motivating use case). Doing this in the constant-evaluator would probably have been better, but that would require a *lot* of extra structure in the representation of constant member pointers: you'd really have to track an arbitrary chain of hierarchy conversions and reinterpretations in order to get this right. Ultimately, this seems less complex. I also wasn't quite sure how to extend the constant evaluator to handle foldings that we don't actually want to treat as extended constant expressions. llvm-svn: 150551
-
- Feb 14, 2012
-
-
Benjamin Kramer authored
llvm-svn: 150475
-
Eli Friedman authored
llvm-svn: 150459
-
Eli Friedman authored
llvm-svn: 150452
-
Eli Friedman authored
Refactor out new function EmitInitializerForField from EmitMemberInitializer. The new function will be used to initialize the fields of lambda expressions. llvm-svn: 150451
-
Nick Lewycky authored
llvm-svn: 150435
-
- Feb 13, 2012
-
-
Richard Smith authored
constructor, and that constructor is used to initialize an object of static storage duration such that all members and bases are initialized by constant expressions, constant initialization is performed. In this case, the object can still have a non-trivial destructor, and if it does, we must emit a dynamic initializer which performs no initialization and instead simply registers that destructor. llvm-svn: 150419
-
Eric Christopher authored
llvm-svn: 150390
-
Eric Christopher authored
while reworking how we handle wanting to emit only parts of structures. Fixes PR11970. llvm-svn: 150388
-
- Feb 12, 2012
-
-
Sebastian Redl authored
instead of having a special-purpose function. - ActOnCXXDirectInitializer, which was mostly duplication of AddInitializerToDecl (leading e.g. to PR10620, which Eli fixed a few days ago), is dropped completely. - MultiInitializer, which was an ugly hack I added, is dropped again. - We now have the infrastructure in place to distinguish between int x = {1}; int x({1}); int x{1}; -- VarDecl now has getInitStyle(), which indicates which of the above was used. -- CXXConstructExpr now has a flag to indicate that it represents list- initialization, although this is not yet used. - InstantiateInitializer was renamed to SubstInitializer and simplified. - ActOnParenOrParenListExpr has been replaced by ActOnParenListExpr, which always produces a ParenListExpr. Placed that so far failed to convert that back to a ParenExpr containing comma operators have been fixed. I'm pretty sure I could have made a crashing test case before this. The end result is a (I hope) considerably cleaner design of initializers. More importantly, the fact that I can now distinguish between the various initialization kinds means that I can get the tricky generalized initializer test cases Johannes Schaub supplied to work. (This is not yet done.) This commit passed self-host, with the resulting compiler passing the tests. I hope it doesn't break more complicated code. It's a pretty big change, but one that I feel is necessary. llvm-svn: 150318
-
- Feb 11, 2012
-
-
Eli Friedman authored
Basic support for referring to captured variables from lambdas. Some simple examples seem to work. Tests coming up soon. llvm-svn: 150293
-
- Feb 10, 2012
-
-
Evgeniy Stepanov authored
This changes function prolog in such a way as to avoid out-of-bounds stack store in the case when coerce-to type has a larger storage size than the real argument type. Fixes PR11905. llvm-svn: 150238
-
- Feb 09, 2012
-
-
Bill Wendling authored
llvm-svn: 150210
-
Bill Wendling authored
This looks like it had a small, but measurable performance improvement on -O0 compile time for our ObjC tests. llvm-svn: 150208
-
Akira Hatanaka authored
Double fields of by-value class objects should be passed in floating point registers. llvm-svn: 150200
-
Akira Hatanaka authored
class objects follow the same rules as those returning struct objects. llvm-svn: 150196
-
Eric Christopher authored
difference in the qual type. This is a workaround for the fact that the type isn't artificial but the this decl is, however, we don't have any way of representing it in the current metadata. For now, however, just don't cache the full type. Fixes rdar://10831526 and probably a couple of others. llvm-svn: 150159
-
Eli Friedman authored
llvm-svn: 150147
-
Eli Friedman authored
llvm-svn: 150146
-
Richard Smith authored
lvalue-to-rvalue conversions in constant expressions. llvm-svn: 150145
-
Eli Friedman authored
llvm-svn: 150141
-
Eli Friedman authored
llvm-svn: 150140
-
- Feb 08, 2012
-
-
Benjamin Kramer authored
While at it make it value-initializable to get rid of static ctors. llvm-svn: 150070
-
Eli Friedman authored
llvm-svn: 150058
-
Eric Christopher authored
and then use it for forward decl names. Part of rdar://10209967 and rdar://10400981 llvm-svn: 150040
-
Akira Hatanaka authored
registers. llvm-svn: 150035
-
Eric Christopher authored
caching of results after we create them. Fixes rdar://10809898 llvm-svn: 150025
-
Devang Patel authored
llvm-svn: 150021
-
- Feb 07, 2012
-
-
Benjamin Kramer authored
Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line. This seems to negatively affect compile time onsome ObjC tests (which use a lot of partial diagnostics I assume). I have to come up with a way to keep them inline without including Diagnostic.h everywhere. Now adding a new diagnostic requires a full rebuild of e.g. the static analyzer which doesn't even use those diagnostics. This reverts commit 6496bd10dc3a6d5e3266348f08b6e35f8184bc99. This reverts commit 7af19b817ba964ac560b50c1ed6183235f699789. This reverts commit fdd15602a42bbe26185978ef1e17019f6d969aa7. This reverts commit 00bd44d5677783527d7517c1ffe45e4d75a0f56f. This reverts commit ef9b60ffed980864a8db26ad30344be429e58ff5. llvm-svn: 150006
-
David Blaikie authored
llvm-svn: 150000
-
Devang Patel authored
llvm-svn: 149996
-
Devang Patel authored
llvm-svn: 149995
-
Benjamin Kramer authored
llvm-svn: 149981
-
Bill Wendling authored
llvm-svn: 149976
-
Bill Wendling authored
llvm-svn: 149975
-
Bill Wendling authored
llvm-svn: 149974
-
Bill Wendling authored
llvm-svn: 149973
-