| #
3d19de99 |
| 11-Apr-2012 |
Eric Christopher <[email protected]> |
Enable debug info for objective c implementations that may not have an explicit instance variable.
rdar://10590352
llvm-svn: 154481
|
| #
84537952 |
| 30-Mar-2012 |
Chandler Carruth <[email protected]> |
Revert r153723, and its follow-ups r153728 and r153733.
These patches cause us to miscompile and/or reject code with static function-local variables in an extern-C context. Previously, we were paper
Revert r153723, and its follow-ups r153728 and r153733.
These patches cause us to miscompile and/or reject code with static function-local variables in an extern-C context. Previously, we were papering over this as long as the variables are within the same translation unit, and had not seen any failures in the wild. We still need a proper fix, which involves mangling static locals inside of an extern-C block (as GCC already does), but this patch causes pretty widespread regressions. Firefox, and many other applications no longer build.
Lots of test cases have been posted to the list in response to this commit, so there should be no problem reproducing the issues.
llvm-svn: 153768
show more ...
|
| #
87590e60 |
| 30-Mar-2012 |
John McCall <[email protected]> |
Do the static-locals thing properly in the face of unions and other things which might mess with the variable's type.
llvm-svn: 153733
|
| #
82b87f19 |
| 30-Mar-2012 |
Bill Wendling <[email protected]> |
The UTF16 string referenced by a CFString should go into the __TEXT,__ustring section. A 'normal' string will go into the __TEXT,__const section, but this isn't good for UTF16 strings. The __ustring
The UTF16 string referenced by a CFString should go into the __TEXT,__ustring section. A 'normal' string will go into the __TEXT,__const section, but this isn't good for UTF16 strings. The __ustring section allows for coalescing, among other niceties (such as allowing the linker to easily split up strings).
Instead of outputting the UTF16 string as a series of bytes, output it as a series of shorts. The back-end will then nicely place the UTF16 string into the correct section, because it's a mensch. <rdar://problem/10655949>
llvm-svn: 153710
show more ...
|
| #
07635cc7 |
| 29-Mar-2012 |
Bill Wendling <[email protected]> |
Fix whitespace.
llvm-svn: 153698
|
| #
141e46fa |
| 26-Mar-2012 |
Kostya Serebryany <[email protected]> |
add tbaa metadata to vtable pointer loads/stores
llvm-svn: 153447
|
| #
e894e09e |
| 24-Mar-2012 |
Benjamin Kramer <[email protected]> |
Simplify some users of DenseMap::erase.
llvm-svn: 153389
|
| #
bbafb8a7 |
| 11-Mar-2012 |
David Blaikie <[email protected]> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris La
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
show more ...
|
| #
df88f6fe |
| 08-Mar-2012 |
Rafael Espindola <[email protected]> |
Replace MarkVarRequired with a more generic HandleCXXStaticMemberVarInstantiation. Suggested by Argyrios.
llvm-svn: 152320
|
| #
189fa748 |
| 05-Mar-2012 |
Rafael Espindola <[email protected]> |
Fix a small difference in sema and codegen views of what needs to be output.
In the included testcase, soma thinks that we already have a definition after we see the out of line decl. Codegen puts i
Fix a small difference in sema and codegen views of what needs to be output.
In the included testcase, soma thinks that we already have a definition after we see the out of line decl. Codegen puts it in a deferred list, to be output if a use is seen. This would break when we saw an explicit template instantiation definition, since codegen would not be notified.
This patch adds a method to the consumer interface so that soma can notify codegen that this decl is now required.
llvm-svn: 152024
show more ...
|
| #
bc638767 |
| 02-Mar-2012 |
Richard Smith <[email protected]> |
Reinstate r151879, r151880, reverted in r151922, along with a bugfix for scalar emission of DeclRefExprs to const bools: emit scalar bools as i1, not as i8.
In addition to the extra unit testing, th
Reinstate r151879, r151880, reverted in r151922, along with a bugfix for scalar emission of DeclRefExprs to const bools: emit scalar bools as i1, not as i8.
In addition to the extra unit testing, this has successfully bootstrapped.
llvm-svn: 151955
show more ...
|
| #
a235e2d8 |
| 27-Feb-2012 |
Sebastian Redl <[email protected]> |
Hack in a loud error for PR12086. Better than a silent miscompile.
llvm-svn: 151586
|
| #
4a7eab25 |
| 25-Feb-2012 |
Sebastian Redl <[email protected]> |
CodeGen support for global variables of type std::initializer_list<X>.
This emits a backing array with internal linkage and fills it with data, then has the initializer_list point at the array. Dyna
CodeGen support for global variables of type std::initializer_list<X>.
This emits a backing array with internal linkage and fills it with data, then has the initializer_list point at the array. Dynamic initialization and global destructors are correctly supported.
What doesn't work is nested initializer_lists. I have no idea how to get them to work, either. However, these should be very rare, and so I'll just call it a known bug and declare generalized initializers DONE!
llvm-svn: 151457
show more ...
|
| #
71006f23 |
| 18-Feb-2012 |
Eric Christopher <[email protected]> |
Remove UpdateCompletedType from the debug info emission. We now emit less than complete types on purpose on occasion and so our caches aren't useful for this kind of lazy emitting.
llvm-svn: 150856
|
| #
e070fd2a |
| 17-Feb-2012 |
Richard Smith <[email protected]> |
Bug fix: do not emit static const local variables with mutable members as constants.
Refactor and simplify all the separate checks for whether a type can be emitted as a constant.
llvm-svn: 150793
|
| #
ae819500 |
| 17-Feb-2012 |
Richard Smith <[email protected]> |
When performing IRGen on a global, emit it as a constant if: 1) It has a const-qualified type, and 2) It has no mutable members, and 3) It has no dynamic initialization, and 4) It has trivial des
When performing IRGen on a global, emit it as a constant if: 1) It has a const-qualified type, and 2) It has no mutable members, and 3) It has no dynamic initialization, and 4) It has trivial destruction. Remove the unnecessary requirement that the type be POD. This allows us to mark all constexpr objects with no mutable members as 'constant'.
llvm-svn: 150792
show more ...
|
| #
a729c62b |
| 17-Feb-2012 |
John McCall <[email protected]> |
Whether an argument is required (in contrast with being an optional argument passed through the variadic ellipsis) potentially affects how we need to lower it. Propagate this information down to the
Whether an argument is required (in contrast with being an optional argument passed through the variadic ellipsis) potentially affects how we need to lower it. Propagate this information down to the various getFunctionInfo(...) overloads on CodeGenTypes. Furthermore, rename those overloads to clarify their distinct purposes, and make sure we're calling the right one in the right place. This has a nice side-effect of making it easier to construct a function type, since the 'variadic' bit is no longer separable.
This shouldn't really change anything for our existing platforms, with one minor exception --- we should now call variadic ObjC methods with the ... in the "right place" (see the test case), which I guess matters for anyone running GNUStep on MIPS. Mostly it's just a substantial clean-up.
llvm-svn: 150788
show more ...
|
| #
515a60da |
| 16-Feb-2012 |
Dan Gohman <[email protected]> |
Teach clang to add metadata tags to calls and invokes in ObjC with -fno-objc-arc-exceptions. This will allow the optimizer to perform optimizations which are only safe under that flag.
This is a par
Teach clang to add metadata tags to calls and invokes in ObjC with -fno-objc-arc-exceptions. This will allow the optimizer to perform optimizations which are only safe under that flag.
This is a part of rdar://10803830.
llvm-svn: 150644
show more ...
|
| #
6331c408 |
| 13-Feb-2012 |
Richard Smith <[email protected]> |
Deal with a horrible C++11 special case. If a non-literal type has a constexpr constructor, and that constructor is used to initialize an object of static storage duration such that all members and b
Deal with a horrible C++11 special case. If a non-literal type has a constexpr 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
show more ...
|
| #
ece0409a |
| 07-Feb-2012 |
Chris Lattner <[email protected]> |
simplify a bunch of code to use the well-known LLVM IR types computed by CodeGenModule.
llvm-svn: 149943
|
| #
02cb1715 |
| 06-Feb-2012 |
Chris Lattner <[email protected]> |
build wide strings with ConstantDataArray, just because we can.
llvm-svn: 149928
|
| #
00a10cae |
| 06-Feb-2012 |
Chris Lattner <[email protected]> |
improve the code that handles IR generation of byte-sized string literals to avoid allocating an std::string.
llvm-svn: 149924
|
| #
3def9aea |
| 06-Feb-2012 |
Chris Lattner <[email protected]> |
use cheaper llvm APIs for various bits of IR generation.
llvm-svn: 149916
|
| #
9c81833c |
| 05-Feb-2012 |
Chris Lattner <[email protected]> |
reapply the patches reverted in r149477, which enable ConstantDataArray.
llvm-svn: 149801
|
| #
2c1dd271 |
| 05-Feb-2012 |
Dylan Noblesmith <[email protected]> |
Basic: import SmallString<> into clang namespace
(I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.)
llvm-svn: 149799
|