#
ad24af7f |
| 13-Dec-2017 |
Michael Zolotukhin <mzolotukhin@apple.com> |
Remove redundant includes from lib/Target/X86.
llvm-svn: 320636
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2 |
|
#
fa582b07 |
| 26-Nov-2017 |
Oren Ben Simhon <oren.ben.simhon@intel.com> |
Control-Flow Enforcement Technology - Shadow Stack support (LLVM side)
Shadow stack solution introduces a new stack for return addresses only. The HW has a Shadow Stack Pointer (SSP) that points to
Control-Flow Enforcement Technology - Shadow Stack support (LLVM side)
Shadow stack solution introduces a new stack for return addresses only. The HW has a Shadow Stack Pointer (SSP) that points to the next return address. If we return to a different address, an exception is triggered. The shadow stack is managed using a series of intrinsics that are introduced in this patch as well as the new register (SSP). The intrinsics are mapped to new instruction set that implements CET mechanism.
The patch also includes initial infrastructure support for IBT.
For more information, please see the following: https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf
Differential Revision: https://reviews.llvm.org/D40223
Change-Id: I4daa1f27e88176be79a4ac3b4cd26a459e88fed4 llvm-svn: 318996
show more ...
|
#
d8b17bed |
| 26-Nov-2017 |
Coby Tayree <coby.tayree@intel.com> |
[x86][icelake]GFNI galois field arithmetic (GF(2^8)) insns: gf2p8affineinvqb gf2p8affineqb gf2p8mulb Differential Revision: https://reviews.llvm.org/D40373
llvm-svn: 318993
|
#
ea37e201 |
| 25-Nov-2017 |
Craig Topper <craig.topper@intel.com> |
[X86] Don't report gather is legal on Skylake CPUs when AVX2/AVX512 is disabled. Allow gather on SKX/CNL/ICL when AVX512 is disabled by using AVX2 instructions.
Summary: This adds a new fast gather
[X86] Don't report gather is legal on Skylake CPUs when AVX2/AVX512 is disabled. Allow gather on SKX/CNL/ICL when AVX512 is disabled by using AVX2 instructions.
Summary: This adds a new fast gather feature bit to cover all CPUs that support fast gather that we can use independent of whether the AVX512 feature is enabled. I'm only using this new bit to qualify AVX2 codegen. AVX512 is still implicitly assuming fast gather to keep tests working and to match the scatter behavior.
Test command lines have been added for these two cases.
Reviewers: magabari, delena, RKSimon, zvi
Reviewed By: RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40282
llvm-svn: 318983
show more ...
|
#
5c7fe5df |
| 21-Nov-2017 |
Coby Tayree <coby.tayree@intel.com> |
[x86][icelake]BITALG vpopcnt{b,w} Differential Revision: https://reviews.llvm.org/D40213
llvm-svn: 318748
|
#
3880f2a3 |
| 21-Nov-2017 |
Coby Tayree <coby.tayree@intel.com> |
[x86][icelake]VNNI Introducing Vector Neural Network Instructions, consisting of: vpdpbusd{s} vpdpwssd{s} Differential Revision: https://reviews.llvm.org/D40208
llvm-svn: 318746
|
#
71e37cc9 |
| 21-Nov-2017 |
Coby Tayree <coby.tayree@intel.com> |
[x86][icelake]vbmi2 introducing vbmi2, consisting of vpcompress{b,w} vpexpand{b,w} vpsh{l,r}d{w,d,q} vpsh{l,r}dv{w,d,q} Differential Revision: https://reviews.llvm.org/D40206
llvm-svn: 318745
|
#
7ca5e587 |
| 21-Nov-2017 |
Coby Tayree <coby.tayree@intel.com> |
[x86][icelake]vpclmulqdq introduction an icelake promotion of pclmulqdq Differential Revision: https://reviews.llvm.org/D40101
llvm-svn: 318741
|
#
2a1c02fc |
| 21-Nov-2017 |
Coby Tayree <coby.tayree@intel.com> |
[x86][icelake]VAES introduction an icelake promotion of AES Differential Revision: https://reviews.llvm.org/D40078
llvm-svn: 318740
|
#
17078ff0 |
| 19-Nov-2017 |
Craig Topper <craig.topper@intel.com> |
[X86] Fix 80 column violation and remove trailing whitespace. NFC
llvm-svn: 318611
|
#
056b3fd6 |
| 08-Nov-2017 |
Sriraman Tallam <tmsriram@google.com> |
Attribute nonlazybind should not affect calls to functions with hidden visibility.
Differential Revision: https://reviews.llvm.org/D39625
llvm-svn: 317639
|
#
7cdb10f1 |
| 03-Nov-2017 |
Sriraman Tallam <tmsriram@google.com> |
Avoid PLT for external calls when attribute nonlazybind is used.
Differential Revision: https://reviews.llvm.org/D39065
llvm-svn: 317292
|
Revision tags: llvmorg-5.0.1-rc1 |
|
#
2393c3b4 |
| 27-Oct-2017 |
Rafael Espindola <rafael.espindola@gmail.com> |
Handle undefined weak hidden symbols on all architectures.
We were handling the non-hidden case in lib/Target/TargetMachine.cpp, but the hidden case was handled in architecture dependent code and on
Handle undefined weak hidden symbols on all architectures.
We were handling the non-hidden case in lib/Target/TargetMachine.cpp, but the hidden case was handled in architecture dependent code and only X86_64 and AArch64 were covered.
While it is true that some code sequences in some ABIs might be able to produce the correct value at runtime, that doesn't seem to be the common case.
I left the AArch64 code in place since it also forces a got access for non-pic code. It is not clear if that is needed, but it is probably better to change that in another commit.
llvm-svn: 316799
show more ...
|
#
27381173 |
| 15-Oct-2017 |
Craig Topper <craig.topper@intel.com> |
[X86] Remove the SlowBTMem feature flag entirely
Turns out we have no patterns on the instructions that were using this feature flag for other reasons. These instructions are slow on all modern CPUs
[X86] Remove the SlowBTMem feature flag entirely
Turns out we have no patterns on the instructions that were using this feature flag for other reasons. These instructions are slow on all modern CPUs so it seems unlikely that we will spend any effort supporting these instructions going forward. So we might as well just kill of the feature flag and just fix up the comments.
llvm-svn: 315862
show more ...
|
#
e9aebf26 |
| 13-Sep-2017 |
Mohammed Agabaria <mohammed.agabaria@intel.com> |
[X86] Adding X86 Processor Families
Adding x86 Processor families to initialize several uArch properties (based on the family) This patch shows how gather cost can be initialized based on the proc.
[X86] Adding X86 Processor Families
Adding x86 Processor families to initialize several uArch properties (based on the family) This patch shows how gather cost can be initialized based on the proc. family
Differential Revision: https://reviews.llvm.org/D35348
llvm-svn: 313132
show more ...
|
Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5 |
|
#
641e2af9 |
| 30-Aug-2017 |
Craig Topper <craig.topper@intel.com> |
[X86] Provide a separate feature bit for macro fusion support instead of basing it on the AVX flag
Summary: Currently we determine if macro fusion is supported based on the AVX flag as a proxy for t
[X86] Provide a separate feature bit for macro fusion support instead of basing it on the AVX flag
Summary: Currently we determine if macro fusion is supported based on the AVX flag as a proxy for the processor being Sandy Bridge".
This is really strange as now AMD supports AVX. It also means if user explicitly disables AVX we disable macro fusion.
This patch adds an explicit macro fusion feature. I've also enabled for the generic 64-bit CPU (which doesn't have AVX)
This is probably another candidate for being in the MI layer, but for now I at least wanted to correct the overloading of the AVX feature.
Reviewers: spatel, chandlerc, RKSimon, zvi
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37280
llvm-svn: 312097
show more ...
|
Revision tags: llvmorg-5.0.0-rc4 |
|
#
62c47a2a |
| 29-Aug-2017 |
Craig Topper <craig.topper@intel.com> |
Mark Knights Landing as having slow two memory operand instructions
Summary: Knights Landing, because it is Atom derived, has slow two memory operand instructions. Mark the Knights Landing CPU model
Mark Knights Landing as having slow two memory operand instructions
Summary: Knights Landing, because it is Atom derived, has slow two memory operand instructions. Mark the Knights Landing CPU model accordingly.
Patch by David Zarzycki.
Reviewers: craig.topper
Reviewed By: craig.topper
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37224
llvm-svn: 311979
show more ...
|
Revision tags: llvmorg-5.0.0-rc3 |
|
#
61d71a13 |
| 15-Aug-2017 |
Quentin Colombet <qcolombet@apple.com> |
Reapply "[GlobalISel] Remove the GISelAccessor API."
This reverts commit r310425, thus reapplying r310335 with a fix for link issue of the AArch64 unittests on Linux bots when BUILD_SHARED_LIBS is O
Reapply "[GlobalISel] Remove the GISelAccessor API."
This reverts commit r310425, thus reapplying r310335 with a fix for link issue of the AArch64 unittests on Linux bots when BUILD_SHARED_LIBS is ON.
Original commit message: [GlobalISel] Remove the GISelAccessor API.
Its sole purpose was to avoid spreading around ifdefs related to building global-isel. Since r309990, GlobalISel is not optional anymore, thus, we can get rid of this mechanism all together.
NFC.
---- The fix for the link issue consists in adding the GlobalISel library in the list of dependencies for the AArch64 unittests. This dependency comes from the use of AArch64Subtarget that needs to know how to destruct the GISel related APIs when being detroyed.
Thanks to Bill Seurer and Ahmed Bougacha for helping me reproducing and understand the problem.
llvm-svn: 310969
show more ...
|
#
b8956a70 |
| 11-Aug-2017 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix access to undefined weak symbols in pic code
When the access to a weak symbol is not a call, the access has to be able to produce the value 0 at runtime.
We were sometimes producing code sequen
Fix access to undefined weak symbols in pic code
When the access to a weak symbol is not a call, the access has to be able to produce the value 0 at runtime.
We were sometimes producing code sequences where that was not possible if the code was leaded more than 4g away from 0.
llvm-svn: 310756
show more ...
|
Revision tags: llvmorg-5.0.0-rc2 |
|
#
8dd90fb5 |
| 08-Aug-2017 |
Quentin Colombet <qcolombet@apple.com> |
Revert "[GlobalISel] Remove the GISelAccessor API."
This reverts commit r310115.
It causes a linker failure for the one of the unittests of AArch64 on one of the linux bot: http://lab.llvm.org:8011
Revert "[GlobalISel] Remove the GISelAccessor API."
This reverts commit r310115.
It causes a linker failure for the one of the unittests of AArch64 on one of the linux bot: http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/3429
: && /home/fedora/gcc/install/gcc-7.1.0/bin/g++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -ffunction-sections -fdata-sections -O2 -L/home/fedora/gcc/install/gcc-7.1.0/lib64 -Wl,-allow-shlib-undefined -Wl,-O3 -Wl,--gc-sections unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/InstSizes.cpp.o -o unittests/Target/AArch64/AArch64Tests lib/libLLVMAArch64CodeGen.so.6.0.0svn lib/libLLVMAArch64Desc.so.6.0.0svn lib/libLLVMAArch64Info.so.6.0.0svn lib/libLLVMCodeGen.so.6.0.0svn lib/libLLVMCore.so.6.0.0svn lib/libLLVMMC.so.6.0.0svn lib/libLLVMMIRParser.so.6.0.0svn lib/libLLVMSelectionDAG.so.6.0.0svn lib/libLLVMTarget.so.6.0.0svn lib/libLLVMSupport.so.6.0.0svn -lpthread lib/libgtest_main.so.6.0.0svn lib/libgtest.so.6.0.0svn -lpthread -Wl,-rpath,/home/buildbots/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/lib && : unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/InstSizes.cpp.o:(.toc+0x0): undefined reference to `vtable for llvm::LegalizerInfo' unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/InstSizes.cpp.o:(.toc+0x8): undefined reference to `vtable for llvm::RegisterBankInfo'
The particularity of this bot is that it is built with BUILD_SHARED_LIBS=ON
However, I was not able to reproduce the problem so far. Reverting to unblock the bot.
llvm-svn: 310425
show more ...
|
#
7662d50d |
| 05-Aug-2017 |
Reid Kleckner <rnk@google.com> |
[X86] Teach fastisel to select calls to dllimport functions
Summary: Direct calls to dllimport functions are very common Windows. We should add them to the -O0 fast path.
Reviewers: rafael
Subscri
[X86] Teach fastisel to select calls to dllimport functions
Summary: Direct calls to dllimport functions are very common Windows. We should add them to the -O0 fast path.
Reviewers: rafael
Subscribers: llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D36197
llvm-svn: 310152
show more ...
|
#
c046208c |
| 04-Aug-2017 |
Quentin Colombet <qcolombet@apple.com> |
[GlobalISel] Remove the GISelAccessor API.
Its sole purpose was to avoid spreading around ifdefs related to building global-isel. Since r309990, GlobalISel is not optional anymore, thus, we can get
[GlobalISel] Remove the GISelAccessor API.
Its sole purpose was to avoid spreading around ifdefs related to building global-isel. Since r309990, GlobalISel is not optional anymore, thus, we can get rid of this mechanism all together.
NFC.
llvm-svn: 310115
show more ...
|
#
250e050a |
| 03-Aug-2017 |
Quentin Colombet <qcolombet@apple.com> |
[GlobalISel] Make GlobalISel a non-optional library.
With this change, the GlobalISel library gets always built. In particular, this is not possible to opt GlobalISel out of the build using the LLVM
[GlobalISel] Make GlobalISel a non-optional library.
With this change, the GlobalISel library gets always built. In particular, this is not possible to opt GlobalISel out of the build using the LLVM_BUILD_GLOBAL_ISEL variable any more.
llvm-svn: 309990
show more ...
|
Revision tags: llvmorg-5.0.0-rc1 |
|
#
710479ce |
| 23-Jul-2017 |
Petr Hosek <phosek@chromium.org> |
[CodeGen][X86] Fuchsia supports sincos* libcalls and sin+cos->sincos optimization
Patch by Roland McGrath
Differential Revision: https://reviews.llvm.org/D35748
llvm-svn: 308854
|
#
8cf805ae |
| 01-Jul-2017 |
Quentin Colombet <qcolombet@apple.com> |
[X86] Move GISel accessor initialization from TargetMachine to Subtarget.
NFC
llvm-svn: 306921
|