History log of /llvm-project/clang/lib/CodeGen/CodeGenModule.cpp (Results 1251 – 1275 of 2157)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2f8d0104 26-Mar-2014 Rafael Espindola <rafael.espindola@gmail.com>

Revert "Update for llvm api change."

This reverts commit r204783.

llvm-svn: 204785


# 02633f63 26-Mar-2014 Rafael Espindola <rafael.espindola@gmail.com>

Update for llvm api change.

llvm-svn: 204783


# 58e5bee1 24-Mar-2014 David Majnemer <david.majnemer@gmail.com>

MS ABI: Eliminate Duplicate Strings

COFF doesn't have mergeable sections so LLVM/clang's normal tactics for
string deduplication will not have any effect.

To remedy this we place each string inside

MS ABI: Eliminate Duplicate Strings

COFF doesn't have mergeable sections so LLVM/clang's normal tactics for
string deduplication will not have any effect.

To remedy this we place each string inside it's own section and mark
the section as IMAGE_COMDAT_SELECT_ANY. However, we can only do this if the
string has an external name that we can generate from it's contents.

To be compatible with MSVC, we must use their scheme. Otherwise identical
strings in translation units from clang may not be deduplicated with
translation units in MSVC.

This fixes PR18248.

N.B. We will not attempt to do anything with a string literal which is not of
type 'char' or 'wchar_t' because their compiler does not support unicode
string literals as of this date. Further, we avoid doing this if
either -fwritable-strings or -fsanitize=address are present.

This reverts commit r204596.

llvm-svn: 204675

show more ...


# 89f588ff 24-Mar-2014 Timur Iskhodzhanov <timurrrr@google.com>

Revert r204562,204566,204586,204587 as they broke ASan on Windows

llvm-svn: 204596


# 96bc4b03 24-Mar-2014 David Majnemer <david.majnemer@gmail.com>

MS ABI: Add tests, other cleanups for r204562

This commit cleans up a few accidents:
- Do not rely on the order in which StringLiteral lays out bytes.
- Use a more efficient mechanism for handling s

MS ABI: Add tests, other cleanups for r204562

This commit cleans up a few accidents:
- Do not rely on the order in which StringLiteral lays out bytes.
- Use a more efficient mechanism for handling so-called
"special-mappings" when mangling string literals.
- There is no need to allocate a copy of the mangled name.
- Add the test written for r204562.

Thanks to Richard Smith for pointing these out!

llvm-svn: 204586

show more ...


# 3843a05e 23-Mar-2014 David Majnemer <david.majnemer@gmail.com>

MS ABI: Eliminate Duplicate Strings

COFF doesn't have mergeable sections so LLVM/clang's normal tactics for
string deduplication will not have any effect.

To remedy this we place each string inside

MS ABI: Eliminate Duplicate Strings

COFF doesn't have mergeable sections so LLVM/clang's normal tactics for
string deduplication will not have any effect.

To remedy this we place each string inside it's own section and mark
the section as IMAGE_COMDAT_SELECT_ANY. However, we can only do this if the
string has an external name that we can generate from it's contents.

To be compatible with MSVC, we must use their scheme. Otherwise identical
strings in translation units from clang may not be deduplicated with
translation units in MSVC.

This fixes PR18248.

N.B. We will not attempt to do anything with a string literal which is not of
type 'char' or 'wchar_t' because their compiler does not support unicode
string literals as of this date.

llvm-svn: 204562

show more ...


# d85eff49 14-Mar-2014 Aaron Ballman <aaron@aaronballman.com>

[C++11] Replacing ObjCCategoryDecl iterators propimpl_begin() and propimpl_end() with iterator_range property_impls(). Updating all of the usages of the iterators with range-based for loops.

llvm-sv

[C++11] Replacing ObjCCategoryDecl iterators propimpl_begin() and propimpl_end() with iterator_range property_impls(). Updating all of the usages of the iterators with range-based for loops.

llvm-svn: 203930

show more ...


# aff18c04 13-Mar-2014 Aaron Ballman <aaron@aaronballman.com>

[C++11] Replacing ObjCContainerDecl iterators meth_begin() and meth_end() with iterator_range methods(). Updating all of the usages of the iterators with range-based for loops.

llvm-svn: 203832


# 93c7a653 13-Mar-2014 Rafael Espindola <rafael.espindola@gmail.com>

Simplify code. No functionality change.

llvm-svn: 203804


# d66a17d0 12-Mar-2014 Justin Bogner <mail@justinbogner.com>

Revert "CodeGen: Use a binary format for instrumentation based profiling"

I've clearly done something wrong with how to get this to link
correctly. Reverting for now.

This reverts commit r203711.

Revert "CodeGen: Use a binary format for instrumentation based profiling"

I've clearly done something wrong with how to get this to link
correctly. Reverting for now.

This reverts commit r203711.

llvm-svn: 203712

show more ...


# ff9a0582 12-Mar-2014 Justin Bogner <mail@justinbogner.com>

CodeGen: Use a binary format for instrumentation based profiling

This updates CodeGenPGO to use the ProfileDataReader introduced to
llvm in r203703 and the new API for writing out the profile introd

CodeGen: Use a binary format for instrumentation based profiling

This updates CodeGenPGO to use the ProfileDataReader introduced to
llvm in r203703 and the new API for writing out the profile introduced
to compiler-rt in r203710.

llvm-svn: 203711

show more ...


# be22bcb1 10-Mar-2014 Aaron Ballman <aaron@aaronballman.com>

[C++11] Replacing DeclBase iterators specific_attr_begin() and specific_attr_end() with iterator_range specific_attrs(). Updating all of the usages of the iterators with range-based for loops.

llvm-

[C++11] Replacing DeclBase iterators specific_attr_begin() and specific_attr_end() with iterator_range specific_attrs(). Updating all of the usages of the iterators with range-based for loops.

llvm-svn: 203474

show more ...


# 4d01fff4 09-Mar-2014 Chandler Carruth <chandlerc@gmail.com>

[C++11] Update Clang for the change to LLVM's Use-Def chain iterators in
r203364: what was use_iterator is now user_iterator, and there is
a use_iterator for directly iterating over the uses.

This a

[C++11] Update Clang for the change to LLVM's Use-Def chain iterators in
r203364: what was use_iterator is now user_iterator, and there is
a use_iterator for directly iterating over the uses.

This also switches to use the range-based APIs where appropriate.

llvm-svn: 203365

show more ...


# 629afaef 07-Mar-2014 Aaron Ballman <aaron@aaronballman.com>

[C++11] Replacing DeclBase iterators decls_begin() and decls_end() with iterator_range decls(). The same is true for the noload versions of these APIs. Updating all of the usages of the iterators wit

[C++11] Replacing DeclBase iterators decls_begin() and decls_end() with iterator_range decls(). The same is true for the noload versions of these APIs. Updating all of the usages of the iterators with range-based for loops.

llvm-svn: 203278

show more ...


# 060062a4 06-Mar-2014 Rafael Espindola <rafael.espindola@gmail.com>

Use llvm.compiler.used instead of llvm.used for objc symbols.

LLVM currently has a hack (shouldEmitUsedDirectiveFor) that causes it to not
print no_dead_strip for symbols starting with 'l' or 'L'. T

Use llvm.compiler.used instead of llvm.used for objc symbols.

LLVM currently has a hack (shouldEmitUsedDirectiveFor) that causes it to not
print no_dead_strip for symbols starting with 'l' or 'L'. These are exactly the
ones that the clang's objc codegen is producing. The net result, is that it is
equivalent to llvm.compiler.used.

The need for putting the private symbol in llvm.compiler.used should be clear
(the objc runtime uses them). The reason for also putting the weak symbols in
it is for LTO: ld64 will not ask us to preserve the it.

llvm-svn: 203172

show more ...


# c80ceea9 04-Mar-2014 Chandler Carruth <chandlerc@gmail.com>

[Modules] Update to reflect the move of CallSite into the IR library in
LLVM r202816.

llvm-svn: 202817


# 0e716b42 03-Mar-2014 David Blaikie <dblaikie@gmail.com>

DebugInfo: Emit only the declaration of a class template that has an explicit instantiation declaration (& always emit such a type when there's an explicit instantiation definition)

We should only h

DebugInfo: Emit only the declaration of a class template that has an explicit instantiation declaration (& always emit such a type when there's an explicit instantiation definition)

We should only have this optimization fire when the explicit
instantiation definition would cause at least one member function to be
emitted, thus ensuring that even a compiler not performing this
optimization would still emit the full type information elsewhere.

But we should also pessimize output still by always emitting the
definition when the explicit instantiation definition appears so that at
some point in the future we can depend on that information even when no
code had to be emitted in that TU. (this shouldn't happen very often,
since people mostly use explicit spec decl/defs to reduce code size -
but perhaps one day they could use it to explicitly reduce debug info
size too)

This was worth about 2% for Clang and LLVM - so not a huge win, but a
win. It looks really great for simple STL programs (include <string> and
just declare a string - 14k -> 1.4k of .dwo)

llvm-svn: 202769

show more ...


# 67e541e1 25-Feb-2014 David Majnemer <david.majnemer@gmail.com>

Attr: Remove ForceInline

The __forceinline keyword's semantics are now recast as AlwaysInline and
the kw___forceinline token has its language mode set for KEYMS.

This preserves the semantics of the

Attr: Remove ForceInline

The __forceinline keyword's semantics are now recast as AlwaysInline and
the kw___forceinline token has its language mode set for KEYMS.

This preserves the semantics of the previous implementation but with
less duplication of code.

llvm-svn: 202131

show more ...


# 7c19ab17 22-Feb-2014 Aaron Ballman <aaron@aaronballman.com>

Exposing the noduplicate attribute within Clang, which marks functions so that the optimizer does not duplicate code.

Patch thanks to Marcello Maggioni!

llvm-svn: 201941


# 3e65d36a 15-Feb-2014 David Blaikie <dblaikie@gmail.com>

DebugInfo: imported_decl/using declarations at namespace scope

llvm-svn: 201470


# 15abd188 11-Feb-2014 Robert Lytton <robert@xmos.com>

XCore target: add section information.

Xcore target ABI requires const data that is externally visible
to be handled differently if it has C-language linkage rather than
C++ language linkage.

llvm-

XCore target: add section information.

Xcore target ABI requires const data that is externally visible
to be handled differently if it has C-language linkage rather than
C++ language linkage.

llvm-svn: 201142

show more ...


# e0fc1a80 11-Feb-2014 Josh Magee <joshua_magee@playstation.sony.com>

[stackprotector] Add command line option -fstack-protector-strong

This option has the following effects:
* It adds the sspstrong IR attribute to each function within the CU.
* It defines the macro

[stackprotector] Add command line option -fstack-protector-strong

This option has the following effects:
* It adds the sspstrong IR attribute to each function within the CU.
* It defines the macro __SSP_STRONG__ with the value of 2.

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

llvm-svn: 201120

show more ...


# 8f80a619 08-Feb-2014 John McCall <rjmccall@apple.com>

Remove the -fhidden-weak-vtables -cc1 option. It was dead,
gross, and increasingly replaced through other mechanisms.

llvm-svn: 201011


# b78257d0 03-Feb-2014 Reid Kleckner <reid@kleckner.net>

[ms-cxxabi] Fix cast when structor replacement is an alias

llvm-svn: 200711


# 29cb66ba 26-Jan-2014 Alp Toker <alp@nuanti.com>

Enforce safe usage of DiagnosticsEngine::getCustomDiagID()

Replace the last incorrect uses and templatize the function to require a
compile-time constant string preventing further misuse.

The diagn

Enforce safe usage of DiagnosticsEngine::getCustomDiagID()

Replace the last incorrect uses and templatize the function to require a
compile-time constant string preventing further misuse.

The diagnostic formatter expects well-formed input and has undefined behaviour
with arbitrary input or crafted user strings in source files. Accepting user
input would also have caused unbounded generation of new diagnostic IDs which
can be problematic in long-running sessions or language bindings.

This completes the work to fix several incorrect callers that passed user
input or raw messages to the diagnostics engine where a constant format string
was expected.

llvm-svn: 200132

show more ...


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