History log of /llvm-project/clang/lib/CodeGen/CodeGenModule.cpp (Results 1476 – 1500 of 2157)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1...<<51525354555657585960>>...87