summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2019-06-23 21:36:31 +0000
committerpatrick <patrick@openbsd.org>2019-06-23 21:36:31 +0000
commit23f101f37937a1bd4a29726cab2f76e0fb038b35 (patch)
treef7da7d6b32c2e07114da399150bfa88d72187012 /gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp
parentsort previous; ok deraadt (diff)
downloadwireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.tar.xz
wireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.zip
Import LLVM 8.0.0 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp')
-rw-r--r--gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp b/gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp
index 62588e9509d..d9ebbb506ca 100644
--- a/gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp
+++ b/gnu/llvm/lib/Target/X86/X86DomainReassignment.cpp
@@ -31,10 +31,6 @@
using namespace llvm;
-namespace llvm {
-void initializeX86DomainReassignmentPass(PassRegistry &);
-}
-
#define DEBUG_TYPE "x86-domain-reassignment"
STATISTIC(NumClosuresConverted, "Number of closures converted by the pass");
@@ -736,7 +732,10 @@ bool X86DomainReassignment::runOnMachineFunction(MachineFunction &MF) {
STI = &MF.getSubtarget<X86Subtarget>();
// GPR->K is the only transformation currently supported, bail out early if no
// AVX512.
- if (!STI->hasAVX512())
+ // TODO: We're also bailing of AVX512BW isn't supported since we use VK32 and
+ // VK64 for GR32/GR64, but those aren't legal classes on KNL. If the register
+ // coalescer doesn't clean it up and we generate a spill we will crash.
+ if (!STI->hasAVX512() || !STI->hasBWI())
return false;
MRI = &MF.getRegInfo();