#
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 ...
|