mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Enable execution dependency fix pass for YMM registers when AVX2 is enabled. Add AVX2 logical operations to list of replaceable instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144179 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -135,10 +135,18 @@ bool X86TargetMachine::addPostRegAlloc(PassManagerBase &PM,
|
||||
bool X86TargetMachine::addPreEmitPass(PassManagerBase &PM,
|
||||
CodeGenOpt::Level OptLevel) {
|
||||
bool ShouldPrint = false;
|
||||
if (OptLevel != CodeGenOpt::None &&
|
||||
(Subtarget.hasSSE2() || Subtarget.hasAVX())) {
|
||||
PM.add(createExecutionDependencyFixPass(&X86::VR128RegClass));
|
||||
ShouldPrint = true;
|
||||
if (OptLevel != CodeGenOpt::None) {
|
||||
if (Subtarget.hasXMMInt()) {
|
||||
PM.add(createExecutionDependencyFixPass(&X86::VR128RegClass));
|
||||
ShouldPrint = true;
|
||||
}
|
||||
if (Subtarget.hasAVX2()) {
|
||||
// FIXME this should be turned on for just AVX, but the pass doesn't check
|
||||
// that instructions are valid before replacing them and there are AVX2
|
||||
// integer instructions in the table.
|
||||
PM.add(createExecutionDependencyFixPass(&X86::VR256RegClass));
|
||||
ShouldPrint = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (Subtarget.hasAVX() && UseVZeroUpper) {
|
||||
|
Reference in New Issue
Block a user