|
Revision tags: llvmorg-6.0.0-rc1 |
|
| #
19131152 |
| 17-Jan-2018 |
George Burgess IV <[email protected]> |
[CodeGen] Fix a crash on mangling multiversioned functions
`multiVersionSortPriority` expects features to have no prefix. We currently carry them around in the format "+${feature}".
llvm-svn: 322618
|
| #
0a6fde48 |
| 16-Jan-2018 |
Erich Keane <[email protected]> |
Move target MV resolver to COMDAT
As reported here: https://bugs.llvm.org/show_bug.cgi?id=35921 The resolver functions should be in their own COMDAT regions. This patch sets that up.
Differential R
Move target MV resolver to COMDAT
As reported here: https://bugs.llvm.org/show_bug.cgi?id=35921 The resolver functions should be in their own COMDAT regions. This patch sets that up.
Differential Revision: https://reviews.llvm.org/D42110
llvm-svn: 322592
show more ...
|
| #
db2736dd |
| 09-Jan-2018 |
Adrian McCarthy <[email protected]> |
Reland "Emit Function IDs table for Control Flow Guard"
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gf
Reland "Emit Function IDs table for Control Flow Guard"
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gfids$y for compatibility with Microsoft's Control Flow Guard feature.
The original patch didn't have the lit.local.cfg file that restricts the new test to x86, thus the new test was failing on the non-x86 bots.
Differential Revision: https://reviews.llvm.org/D40531
The reverts r322008, which was a revert of r322005.
This reverts commit a05b89f9aca70597dc79fe97bc49b50b51f525ba.
llvm-svn: 322136
show more ...
|
| #
57cc1a5d |
| 09-Jan-2018 |
Oren Ben Simhon <[email protected]> |
Added Control Flow Protection Flag
Cf-protection is a target independent flag that instructs the back-end to instrument control flow mechanisms like: Branch, Return, etc. For example in X86 this fla
Added Control Flow Protection Flag
Cf-protection is a target independent flag that instructs the back-end to instrument control flow mechanisms like: Branch, Return, etc. For example in X86 this flag will be used to instrument Indirect Branch Tracking instructions.
Differential Revision: https://reviews.llvm.org/D40478
Change-Id: I5126e766c0e6b84118cae0ee8a20fe78cc373dea llvm-svn: 322063
show more ...
|
| #
bc40c5c6 |
| 09-Jan-2018 |
Erich Keane <[email protected]> |
Fix use-after-free found by address-san on -r322028.
r322028 attempted to remove something from the "Manglings" list when it was no longer valid, and did so with 'erase'.
However, StringRefs to the
Fix use-after-free found by address-san on -r322028.
r322028 attempted to remove something from the "Manglings" list when it was no longer valid, and did so with 'erase'.
However, StringRefs to these were stored, so these became dangling references. This patch changes to using 'remove' instead of 'erase' to keep the strings valid.
llvm-svn: 322052
show more ...
|
| #
281d20b6 |
| 08-Jan-2018 |
Erich Keane <[email protected]> |
Implement Attribute Target MultiVersioning
GCC's attribute 'target', in addition to being an optimization hint, also allows function multiversioning. We currently have the former implemented, this i
Implement Attribute Target MultiVersioning
GCC's attribute 'target', in addition to being an optimization hint, also allows function multiversioning. We currently have the former implemented, this is the latter's implementation.
This works by enabling functions with the same name/signature to coexist, so that they can all be emitted. Multiversion state is stored in the FunctionDecl itself, and SemaDecl manages the definitions. Note that it ends up having to permit redefinition of functions so that they can all be emitted. Additionally, all versions of the function must be emitted, so this also manages that.
Note that this includes some additional rules that GCC does not, since defining something as a MultiVersion function after a usage has been made illegal.
The only 'history rewriting' that happens is if a function is emitted before it has been converted to a multiversion'ed function, at which point its name needs to be changed.
Function templates and virtual functions are NOT yet supported (not supported in GCC either).
Additionally, constructors/destructors are disallowed, but the former is planned.
llvm-svn: 322028
show more ...
|
| #
ce63a925 |
| 08-Jan-2018 |
Adrian McCarthy <[email protected]> |
Revert "Emit Function IDs table for Control Flow Guard"
The new test fails on the Hexagon bot. Reverting while I investigate.
This reverts https://reviews.llvm.org/rL322005
This reverts commit b7
Revert "Emit Function IDs table for Control Flow Guard"
The new test fails on the Hexagon bot. Reverting while I investigate.
This reverts https://reviews.llvm.org/rL322005
This reverts commit b7e0026b4385180c378edc658ec91a39566f2942.
llvm-svn: 322008
show more ...
|
| #
cf6e6c82 |
| 08-Jan-2018 |
Adrian McCarthy <[email protected]> |
Emit Function IDs table for Control Flow Guard
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gfids$y for
Emit Function IDs table for Control Flow Guard
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gfids$y for compatibility with Microsoft's Control Flow Guard feature.
Differential Revision: https://reviews.llvm.org/D40531
llvm-svn: 322005
show more ...
|
| #
a8a9153a |
| 29-Dec-2017 |
Alexey Bataev <[email protected]> |
[OPENMP] Support for -fopenmp-simd option with compilation of simd loops only.
Added support for -fopenmp-simd option that allows compilation of simd-based constructs without emission of OpenMP runt
[OPENMP] Support for -fopenmp-simd option with compilation of simd loops only.
Added support for -fopenmp-simd option that allows compilation of simd-based constructs without emission of OpenMP runtime calls.
llvm-svn: 321560
show more ...
|
| #
a283e48f |
| 21-Dec-2017 |
Reid Kleckner <[email protected]> |
Revert "Fix for PR32990"
This reverts commit r321239. It broke the Chromium DLL build:
[8834/50217] LINK(DLL) icui18n.dll icui18n.dll.lib icui18n.dll.pdb FAILED: icui18n.dll icui18n.dll.lib icui18n
Revert "Fix for PR32990"
This reverts commit r321239. It broke the Chromium DLL build:
[8834/50217] LINK(DLL) icui18n.dll icui18n.dll.lib icui18n.dll.pdb FAILED: icui18n.dll icui18n.dll.lib icui18n.dll.pdb zrule.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_60::UnicodeString::`vbase destructor'(void)" (__imp_??_DUnicodeString@icu_60@@QEAAXXZ)
llvm-svn: 321298
show more ...
|
| #
f58a132e |
| 21-Dec-2017 |
Abderrazek Zaafrani <[email protected]> |
[AARch64] Add ARMv8.2-A FP16 vector intrinsics
Putting back the code that was reverted few weeks ago.
Differential Revision: https://reviews.llvm.org/D34161
llvm-svn: 321294
|
| #
abf9d664 |
| 21-Dec-2017 |
Erich Keane <[email protected]> |
Fix for PR32990
This fixes the bug in https://bugs.llvm.org/show_bug.cgi?id=32990.
Patch By: zahiraam Differential Revision: https://reviews.llvm.org/D39063
llvm-svn: 321239
|
| #
8516b7f6 |
| 19-Dec-2017 |
Eli Friedman <[email protected]> |
[Coverage] Fix use-after free in coverage emission
Fixes regression from r320533.
This fixes the undefined behavior, but I'm not sure it's really right... I think we end up with missing coverage fo
[Coverage] Fix use-after free in coverage emission
Fixes regression from r320533.
This fixes the undefined behavior, but I'm not sure it's really right... I think we end up with missing coverage for code in modules.
Differential Revision: https://reviews.llvm.org/D41374
llvm-svn: 321052
show more ...
|
| #
b952e639 |
| 15-Dec-2017 |
Alexey Bataev <[email protected]> |
[OPENMP] Codegen `declare simd` for function declarations.
Previously the attributes were emitted only for function definitions. Patch adds emission of the attributes for function declarations.
llv
[OPENMP] Codegen `declare simd` for function declarations.
Previously the attributes were emitted only for function definitions. Patch adds emission of the attributes for function declarations.
llvm-svn: 320826
show more ...
|
| #
dbcfaded |
| 13-Dec-2017 |
Eli Friedman <[email protected]> |
[Coverage] Always emit unused coverage mappings in the same order.
Non-determinism is confusing at best.
Differential Revision: https://reviews.llvm.org/D41140
llvm-svn: 320533
|
| #
12817e59 |
| 09-Dec-2017 |
Evgeniy Stepanov <[email protected]> |
Hardware-assisted AddressSanitizer (clang part).
Summary: Driver, frontend and LLVM codegen for HWASan. A clone of ASan, basically.
Reviewers: kcc, pcc, alekseyshl
Subscribers: srhines, javed.absa
Hardware-assisted AddressSanitizer (clang part).
Summary: Driver, frontend and LLVM codegen for HWASan. A clone of ASan, basically.
Reviewers: kcc, pcc, alekseyshl
Subscribers: srhines, javed.absar, cfe-commits
Differential Revision: https://reviews.llvm.org/D40936
llvm-svn: 320232
show more ...
|
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3 |
|
| #
8065f0b9 |
| 01-Dec-2017 |
Zachary Turner <[email protected]> |
Mark all library options as hidden.
These command line options are not intended for public use, and often don't even make sense in the context of a particular tool anyway. About 90% of them are alre
Mark all library options as hidden.
These command line options are not intended for public use, and often don't even make sense in the context of a particular tool anyway. About 90% of them are already hidden, but when people add new options they forget to hide them, so if you were to make a brand new tool today, link against one of LLVM's libraries, and run tool -help you would get a bunch of junk that doesn't make sense for the tool you're writing.
This patch hides these options. The real solution is to not have libraries defining command line options, but that's a much larger effort and not something I'm prepared to take on.
Differential Revision: https://reviews.llvm.org/D40674
llvm-svn: 319505
show more ...
|
| #
ba874ad8 |
| 29-Nov-2017 |
Jake Ehrlich <[email protected]> |
Reland "Fix vtable not receiving hidden visibility when using push(visibility)"
I had to reland this change in order to make the test work on windows
This change should resolve https://bugs.llvm.or
Reland "Fix vtable not receiving hidden visibility when using push(visibility)"
I had to reland this change in order to make the test work on windows
This change should resolve https://bugs.llvm.org/show_bug.cgi?id=35022
https://reviews.llvm.org/D39627
llvm-svn: 319269
show more ...
|
|
Revision tags: llvmorg-5.0.1-rc2 |
|
| #
4e50e707 |
| 27-Nov-2017 |
Ivan A. Kosarev <[email protected]> |
[CodeGen] Collect information about sizes of accesses and access types for TBAA
The information about access and type sizes is necessary for producing TBAA metadata in the new size-aware format. Wit
[CodeGen] Collect information about sizes of accesses and access types for TBAA
The information about access and type sizes is necessary for producing TBAA metadata in the new size-aware format. With this patch, D39955 and D39956 in place we should be able to change CodeGenTBAA::createScalarTypeNode() and CodeGenTBAA::getBaseTypeInfo() to generate metadata in the new format under the -new-struct-path-tbaa command-line option. For now, this new information remains unused.
Differential Revision: https://reviews.llvm.org/D40176
llvm-svn: 319012
show more ...
|
| #
32c9de00 |
| 22-Nov-2017 |
Petr Hosek <[email protected]> |
Revert "[CodeGen] Fix vtable not receiving hidden visibility when using push(visibility)"
This reverts commit r318853: tests are failing on Windows bots
llvm-svn: 318866
|
| #
9696dbb9 |
| 22-Nov-2017 |
Petr Hosek <[email protected]> |
[CodeGen] Fix vtable not receiving hidden visibility when using push(visibility)
This change should resolve https://bugs.llvm.org/show_bug.cgi?id=35022
Patch by Jake Ehrlich
Differential Revision:
[CodeGen] Fix vtable not receiving hidden visibility when using push(visibility)
This change should resolve https://bugs.llvm.org/show_bug.cgi?id=35022
Patch by Jake Ehrlich
Differential Revision: https://reviews.llvm.org/D39627
llvm-svn: 318853
show more ...
|
| #
c451cf24 |
| 11-Nov-2017 |
Jake Ehrlich <[email protected]> |
Add CLANG_DEFAULT_OBJCOPY to allow Clang to use llvm-objcopy for dwarf fission
llvm-objcopy is getting to where it can be used in non-trivial ways (such as for dwarf fission in clang). It now suppor
Add CLANG_DEFAULT_OBJCOPY to allow Clang to use llvm-objcopy for dwarf fission
llvm-objcopy is getting to where it can be used in non-trivial ways (such as for dwarf fission in clang). It now supports dwarf fission but this feature hasn't been thoroughly tested yet. This change allows people to optionally build clang to use llvm-objcopy rather than GNU objcopy. By default GNU objcopy is still used so nothing should change.
Differential Revision: https://reviews.llvm.org/D39029
llvm-svn: 317960
show more ...
|
| #
b22e6004 |
| 04-Nov-2017 |
Martell Malone <[email protected]> |
CodeGenCXX: no default dllimport storage for mingw
GNU frontends don't have options like /MT, /MD This fixes a few link error regressions with libc++ and libc++abi
Reviewers: rnk, mstorsjo, compner
CodeGenCXX: no default dllimport storage for mingw
GNU frontends don't have options like /MT, /MD This fixes a few link error regressions with libc++ and libc++abi
Reviewers: rnk, mstorsjo, compnerd
Differential Revision: https://reviews.llvm.org/D33620
llvm-svn: 317398
show more ...
|
| #
e124612e |
| 03-Nov-2017 |
Richard Smith <[email protected]> |
[c++17] Visit class template explicit specializations just like all other class definitions in codegen.
If an explicit specialization has a static data member, it may be a definition and we may need
[c++17] Visit class template explicit specializations just like all other class definitions in codegen.
If an explicit specialization has a static data member, it may be a definition and we may need to register it for emission.
llvm-svn: 317296
show more ...
|
| #
634c601f |
| 31-Oct-2017 |
Vlad Tsyrklevich <[email protected]> |
[CFI] Add CFI-icall pointer type generalization
Summary: This change allows generalizing pointers in type signatures used for cfi-icall by enabling the -fsanitize-cfi-icall-generalize-pointers flag.
[CFI] Add CFI-icall pointer type generalization
Summary: This change allows generalizing pointers in type signatures used for cfi-icall by enabling the -fsanitize-cfi-icall-generalize-pointers flag. This works by 1) emitting an additional generalized type signature metadata node for functions and 2) llvm.type.test()ing for the generalized type for translation units with the flag specified.
This flag is incompatible with -fsanitize-cfi-cross-dso because it would require emitting twice as many type hashes which would increase artifact size.
Reviewers: pcc, eugenis
Reviewed By: pcc
Subscribers: kcc
Differential Revision: https://reviews.llvm.org/D39358
llvm-svn: 317044
show more ...
|