mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-24 20:30:06 +00:00
The early if conversion pass is ready to be used as an opt-in.
Enable the pass by default for targets that request it, and change the -enable-early-ifcvt to the opposite -disable-early-ifcvt. There are still some x86 regressions when enabling early if-conversion because of the missing machine models. Disable the pass for x86 until machine models are added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165075 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
75eac5f0eb
commit
0d141f867d
@ -49,8 +49,8 @@ static cl::opt<bool> DisableSSC("disable-ssc", cl::Hidden,
|
||||
cl::desc("Disable Stack Slot Coloring"));
|
||||
static cl::opt<bool> DisableMachineDCE("disable-machine-dce", cl::Hidden,
|
||||
cl::desc("Disable Machine Dead Code Elimination"));
|
||||
static cl::opt<bool> EnableEarlyIfConversion("enable-early-ifcvt", cl::Hidden,
|
||||
cl::desc("Enable Early If-conversion"));
|
||||
static cl::opt<bool> DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden,
|
||||
cl::desc("Disable Early If-conversion"));
|
||||
static cl::opt<bool> DisableMachineLICM("disable-machine-licm", cl::Hidden,
|
||||
cl::desc("Disable Machine LICM"));
|
||||
static cl::opt<bool> DisableMachineCSE("disable-machine-cse", cl::Hidden,
|
||||
@ -161,7 +161,7 @@ static AnalysisID overridePass(AnalysisID StandardID, AnalysisID TargetID) {
|
||||
return applyDisable(TargetID, DisableMachineDCE);
|
||||
|
||||
if (StandardID == &EarlyIfConverterID)
|
||||
return applyDisable(TargetID, !EnableEarlyIfConversion);
|
||||
return applyDisable(TargetID, DisableEarlyIfConversion);
|
||||
|
||||
if (StandardID == &MachineLICMID)
|
||||
return applyDisable(TargetID, DisableMachineLICM);
|
||||
|
@ -113,6 +113,12 @@ UseVZeroUpper("x86-use-vzeroupper",
|
||||
cl::desc("Minimize AVX to SSE transition penalty"),
|
||||
cl::init(true));
|
||||
|
||||
// Temporary option to control early if-conversion for x86 while adding machine
|
||||
// models.
|
||||
static cl::opt<bool>
|
||||
X86EarlyIfConv("x86-early-ifcvt",
|
||||
cl::desc("Enable early if-conversion on X86"));
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Pass Pipeline Configuration
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -142,7 +148,7 @@ public:
|
||||
TargetPassConfig *X86TargetMachine::createPassConfig(PassManagerBase &PM) {
|
||||
X86PassConfig *PC = new X86PassConfig(this, PM);
|
||||
|
||||
if (Subtarget.hasCMov())
|
||||
if (X86EarlyIfConv && Subtarget.hasCMov())
|
||||
PC->enablePass(&EarlyIfConverterID);
|
||||
|
||||
return PC;
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -enable-early-ifcvt -stress-early-ifcvt | FileCheck %s
|
||||
; RUN: llc < %s -x86-early-ifcvt -stress-early-ifcvt | FileCheck %s
|
||||
target triple = "x86_64-apple-macosx10.8.0"
|
||||
|
||||
; CHECK: mm2
|
||||
|
Loading…
Reference in New Issue
Block a user