#
bbafb8a7 |
| 11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
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 <rafael.espindola@gmail.com> |
Replace MarkVarRequired with a more generic HandleCXXStaticMemberVarInstantiation. Suggested by Argyrios.
llvm-svn: 152320
|
#
189fa748 |
| 05-Mar-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
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 <richard-llvm@metafoo.co.uk> |
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 <sebastian.redl@getdesigned.at> |
Hack in a loud error for PR12086. Better than a silent miscompile.
llvm-svn: 151586
|
#
4a7eab25 |
| 25-Feb-2012 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
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 <echristo@apple.com> |
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 <richard-llvm@metafoo.co.uk> |
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 <richard-llvm@metafoo.co.uk> |
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 <rjmccall@apple.com> |
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 <gohman@apple.com> |
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 <richard-llvm@metafoo.co.uk> |
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 <sabre@nondot.org> |
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 <sabre@nondot.org> |
build wide strings with ConstantDataArray, just because we can.
llvm-svn: 149928
|
#
00a10cae |
| 06-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
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 <sabre@nondot.org> |
use cheaper llvm APIs for various bits of IR generation.
llvm-svn: 149916
|
#
9c81833c |
| 05-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
reapply the patches reverted in r149477, which enable ConstantDataArray.
llvm-svn: 149801
|
#
2c1dd271 |
| 05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
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
|
#
ef41fd31 |
| 02-Feb-2012 |
Alexander Potapenko <glider@google.com> |
Move the code that sets the AddressSafety attribute into CodeGenModule::SetLLVMFunctionAttributesForDefinition().
Previously it resided in CodeGenModule::GetOrCreateLLVMFunction, which for some reas
Move the code that sets the AddressSafety attribute into CodeGenModule::SetLLVMFunctionAttributesForDefinition().
Previously it resided in CodeGenModule::GetOrCreateLLVMFunction, which for some reason wasn't called for ObjC class methods, see http://code.google.com/p/address-sanitizer/issues/detail?id=33
llvm-svn: 149605
show more ...
|
#
a11b35a9 |
| 01-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert r149363 which was part a series of commits that were reverted in llvm commit 149470. This fixes test/CodeGen/PR3589-freestanding-libcalls.c.
Original log:
ConstantArray::get() (for strin
Revert r149363 which was part a series of commits that were reverted in llvm commit 149470. This fixes test/CodeGen/PR3589-freestanding-libcalls.c.
Original log:
ConstantArray::get() (for strings) is going away, use ConstantDataArray::getString instead.
Many instances of ConstantArray::get() could be moved to use more efficient ConstantDataArray methods that avoid a ton of intermediate Constant*'s for each element (e.g. GetConstantArrayFromStringLiteral). I don't plan on doing this in the short-term though.
llvm-svn: 149477
show more ...
|
#
92d436b4 |
| 31-Jan-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Support @compatibility_alias at run time (GNUstep Runtime)
Patch by Niels Grewe!
llvm-svn: 149401
|
#
f4a4bec3 |
| 31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
ConstantArray::get() (for strings) is going away, use ConstantDataArray::getString instead.
Many instances of ConstantArray::get() could be moved to use more efficient ConstantDataArray methods tha
ConstantArray::get() (for strings) is going away, use ConstantDataArray::getString instead.
Many instances of ConstantArray::get() could be moved to use more efficient ConstantDataArray methods that avoid a ton of intermediate Constant*'s for each element (e.g. GetConstantArrayFromStringLiteral). I don't plan on doing this in the short-term though.
llvm-svn: 149363
show more ...
|
#
588d6abf |
| 24-Jan-2012 |
Kostya Serebryany <kcc@google.com> |
The following patch adds __attribute__((no_address_safety_analysis)) which will allow to disable address safety analysis (such as e.g. AddressSanitizer or SAFECode) for a specific function.
When bui
The following patch adds __attribute__((no_address_safety_analysis)) which will allow to disable address safety analysis (such as e.g. AddressSanitizer or SAFECode) for a specific function.
When building with AddressSanitizer, add AddressSafety function attribute to every generated function except for those that have __attribute__((no_address_safety_analysis)).
With this patch we will be able to 1. disable AddressSanitizer for a particular function 2. disable AddressSanitizer-hostile optimizations (such as some cases of load widening) when AddressSanitizer is on.
llvm-svn: 148842
show more ...
|
#
e4d798f0 |
| 20-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
More dead code removal (using -Wunreachable-code)
llvm-svn: 148577
|
#
c9196651 |
| 18-Jan-2012 |
Seth Cantrell <seth.cantrell@gmail.com> |
test svn commit access
llvm-svn: 148388
|