History log of /llvm-project/clang/lib/CodeGen/CodeGenModule.cpp (Results 1301 – 1325 of 2157)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 0196a1d9 12-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com>

Keep the old function order in CodeGenModule::applyReplacements.

The original decls are created when used. The replacements are created at the
end of the TU in reverse order.

This makes the origina

Keep the old function order in CodeGenModule::applyReplacements.

The original decls are created when used. The replacements are created at the
end of the TU in reverse order.

This makes the original order far better for testing. This is particularly
important since the replacement logic could be used even when
-mconstructor-aliases is not used, but that would make many tests hard to read.

This is a fixed version of r194357 which handles replacing a destructor with
another which is an alias to a third one.

llvm-svn: 194452

show more ...


# 8d693a34 11-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com>

Revert "Keep the old function order in CodeGenModule::applyReplacements."

This reverts commit r194357.

Debugging a cast failure during bootstrap.

llvm-svn: 194358


# 732c99c4 10-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com>

Keep the old function order in CodeGenModule::applyReplacements.

The original decls are created when used. The replacements are created at the
end of the TU in reverse order.

This makes the origina

Keep the old function order in CodeGenModule::applyReplacements.

The original decls are created when used. The replacements are created at the
end of the TU in reverse order.

This makes the original order far better for testing. This is particularly
important since the replacement logic could be used even when
-mconstructor-aliases is not used, but that would make many tests hard to read.

llvm-svn: 194357

show more ...


# eed8061b 10-Nov-2013 Benjamin Kramer <benny.kra@googlemail.com>

Avoid double StringMap lookups. No functionality change.

llvm-svn: 194355


# 2e2995bf 05-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com>

Produce direct calls instead of alias to linkonce_odr functions.

This is a small optimization on linux, but should help more on windows
where msvc only outputs one destructor if there would be two i

Produce direct calls instead of alias to linkonce_odr functions.

This is a small optimization on linux, but should help more on windows
where msvc only outputs one destructor if there would be two identical ones.

llvm-svn: 194095

show more ...


# b47c36f8 05-Nov-2013 Richard Smith <richard-llvm@metafoo.co.uk>

C++1y sized deallocation: if we have a use, but not a definition, of a sized
deallocation function (and the corresponding unsized deallocation function has
been declared), emit a weak discardable def

C++1y sized deallocation: if we have a use, but not a definition, of a sized
deallocation function (and the corresponding unsized deallocation function has
been declared), emit a weak discardable definition of the function that
forwards to the corresponding unsized deallocation.

This allows a C++ standard library implementation to provide both a sized and
an unsized deallocation function, where the unsized one does not just call the
sized one, for instance by putting both in the same object file within an
archive.

llvm-svn: 194055

show more ...


# 208b5c0f 22-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com>

New fix for pr17535.

This is a fixed version of r193161. In order to handle

void foo() __attribute__((alias("bar")));
void bar() {}
void zed() __attribute__((alias("foo")));

it is not

New fix for pr17535.

This is a fixed version of r193161. In order to handle

void foo() __attribute__((alias("bar")));
void bar() {}
void zed() __attribute__((alias("foo")));

it is not enough to delay aliases to the end of the TU, we have to do two
passes over them to find if they are defined or not.

This can be implemented by producing alias as we go and just doing the second
pass at the end. This has the advantage that other parts of clang that were
expecting alias to be processed in order don't have to be changed.

This patch also handles cyclic aliases.

llvm-svn: 193188

show more ...


# 6956d587 22-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com>

Revert "This patch causes clang to reject alias attributes that point to undefined names. For example, with this patch we now reject"

This reverts commit r193161.

It broke

void foo() __attribute__

Revert "This patch causes clang to reject alias attributes that point to undefined names. For example, with this patch we now reject"

This reverts commit r193161.

It broke

void foo() __attribute__((alias("bar")));
void bar() {}
void zed() __attribute__((alias("foo")));

Looks like we have to fix pr17639 first :-(

llvm-svn: 193162

show more ...


# 0fad0d77 22-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com>

This patch causes clang to reject alias attributes that point to undefined
names. For example, with this patch we now reject

void f1(void) __attribute__((alias("g1")));

This patch is implemented in

This patch causes clang to reject alias attributes that point to undefined
names. For example, with this patch we now reject

void f1(void) __attribute__((alias("g1")));

This patch is implemented in CodeGen. It is quiet a bit simpler and more
compatible with gcc than implementing it in Sema. The downside is that the
errors only fire during -emit-llvm.

llvm-svn: 193161

show more ...


# 8db352d5 17-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com>

Rename some functions for consistency.

Every other function in Redeclarable.h was using Decl instead of Declaration.

llvm-svn: 192900


# 3bfa4688 16-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com>

Emit a .ident saying that clang produced this file.

Patch by Katya Romanova.

llvm-svn: 192832


# 4f755dea 08-Oct-2013 Manman Ren <manman.ren@gmail.com>

TBAA: use the same format for scalar TBAA and struct-path aware TBAA.

An updated version of r191586 with bug fix.

Struct-path aware TBAA generates tags to specify the access path,
while scalar TBAA

TBAA: use the same format for scalar TBAA and struct-path aware TBAA.

An updated version of r191586 with bug fix.

Struct-path aware TBAA generates tags to specify the access path,
while scalar TBAA only generates tags to scalar types.

We should not generate a TBAA tag with null being the first field. When
a TBAA type node is null, the tag should be null too. Make sure we
don't decorate an instruction with a null TBAA tag.

Added a testing case for the bug reported by Richard with -relaxed-aliasing
and -fsanitizer=thread.

llvm-svn: 192145

show more ...


# e4aaac50 01-Oct-2013 Richard Smith <richard-llvm@metafoo.co.uk>

Revert r191586 and r191695. They cause crashes when building with
-relaxed-aliasing.

llvm-svn: 191725


# 4f042633 27-Sep-2013 Manman Ren <manman.ren@gmail.com>

TBAA: use the same format for scalar TBAA and struct-path aware TBAA.

Struct-path aware TBAA generates tags to specify the access path,
while scalar TBAA only generates tags to scalar types.

llvm-s

TBAA: use the same format for scalar TBAA and struct-path aware TBAA.

Struct-path aware TBAA generates tags to specify the access path,
while scalar TBAA only generates tags to scalar types.

llvm-svn: 191586

show more ...


# b00f360e 04-Sep-2013 David Blaikie <dblaikie@gmail.com>

Do not emit duplicate global initializers for template static data members inside namespaces

A quirk of AST representation leads to class template static data member
definitions being visited twice

Do not emit duplicate global initializers for template static data members inside namespaces

A quirk of AST representation leads to class template static data member
definitions being visited twice during Clang IRGen resulting in
duplicate (benign) initializers.

Discovered while investigating a possibly-related debug info bug tickled
by the duplicate emission of these members & their associated debug
info.

With thanks to Richard Smith for help investigating, understanding, and
helping with the fix.

llvm-svn: 189996

show more ...


# b9921df2 03-Sep-2013 Reid Kleckner <reid@kleckner.net>

Emit uuid globals as linkonce_odr

Patch by Nico Rieck!

llvm-svn: 189860


# 25284cc9 23-Aug-2013 Robert Wilhelm <robert.wilhelm@gmx.net>

Use pop_back_val() instead of both back() and pop_back().
No functionality change intended.

llvm-svn: 189112


# 4a9ec7b5 19-Aug-2013 David Blaikie <dblaikie@gmail.com>

PR16933: Don't try to codegen things after we've seen errors.

Refactor the underlying code a bit to remove unnecessary calls to
"hasErrorOccurred" & make them consistently at all the entry points to

PR16933: Don't try to codegen things after we've seen errors.

Refactor the underlying code a bit to remove unnecessary calls to
"hasErrorOccurred" & make them consistently at all the entry points to
the IRGen ASTConsumer.

llvm-svn: 188707

show more ...


# bbecd096 15-Aug-2013 David Majnemer <david.majnemer@gmail.com>

CodeGen: __uuidof should work even with an incomplete _GUID type

Summary:
We would crash in CodeGen::CodeGenModule::EmitUuidofInitializer
because our attempt to enter CodeGen::CodeGenModule::EmitCon

CodeGen: __uuidof should work even with an incomplete _GUID type

Summary:
We would crash in CodeGen::CodeGenModule::EmitUuidofInitializer
because our attempt to enter CodeGen::CodeGenModule::EmitConstantValue
will be foiled: the type of the constant value is incomplete.

Instead, create an unnamed type with the proper layout on all platforms.
Punt the problem of wrongly defined struct _GUID types to the user.
(It's impossible because the TU may never get to see the type and thus
we can't verify that it is suitable.)

This fixes PR16856.

Reviewers: rsmith, rnk, thakis

Reviewed By: rnk

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1375

llvm-svn: 188481

show more ...


# 8eaab6ff 13-Aug-2013 David Majnemer <david.majnemer@gmail.com>

[-cxx-abi microsoft] Mangle __uuidof correctly into template parameters

Summary:
It seems that __uuidof introduces a global extern "C" declaration of
type __s_GUID. However, our implementation of _

[-cxx-abi microsoft] Mangle __uuidof correctly into template parameters

Summary:
It seems that __uuidof introduces a global extern "C" declaration of
type __s_GUID. However, our implementation of __uuidof does not provide
such a declaration and thus must open-code the mangling for __uuidof in
template parameters.

This allows us to codegen scoped COM pointers and other such things.

This fixes PR16836.
Depends on D1356.

Reviewers: rnk, cdavis5x, rsmith

Reviewed By: rnk

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1357

llvm-svn: 188252

show more ...


# d6e043ba 12-Aug-2013 Alexey Samsonov <samsonov@google.com>

Use new llvm::SpecialCaseList API in CodeGenModule

llvm-svn: 188170


# cf963cec 09-Aug-2013 David Majnemer <david.majnemer@gmail.com>

[-cxx-abi microsoft] Mangle UUIDs correctly, stick them in the proper section

Revert r188055 which reverted r188053. An unrelated change previously snuck in.

llvm-svn: 188060


# a2724ae4 09-Aug-2013 David Majnemer <david.majnemer@gmail.com>

Revert "[-cxx-abi microsoft] Mangle UUIDs correctly, stick them in the proper section"

This commit reverts r188053.

It is breaking the build bots.

llvm-svn: 188055


# 94a76b64 09-Aug-2013 David Majnemer <david.majnemer@gmail.com>

[-cxx-abi microsoft] Mangle UUIDs correctly, stick them in the proper section

We mangled them like:
L___uuid_12345678-1234-1234-1234-123456789abc

We should've mangled them like:
__GUID_12345678_123

[-cxx-abi microsoft] Mangle UUIDs correctly, stick them in the proper section

We mangled them like:
L___uuid_12345678-1234-1234-1234-123456789abc

We should've mangled them like:
__GUID_12345678_1234_1234_1234_123456789abc

Furthermore, they are external symbols.

llvm-svn: 188053

show more ...


# 39a1e507 06-Aug-2013 Larisse Voufo <lvoufo@google.com>

Started implementing variable templates. Top level declarations should be fully supported, up to some limitations documented as FIXMEs or TODO. Static data member templates work very partially. Stati

Started implementing variable templates. Top level declarations should be fully supported, up to some limitations documented as FIXMEs or TODO. Static data member templates work very partially. Static data member templates of class templates need particular attention...

llvm-svn: 187762

show more ...


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