forked from OSchip/llvm-project
AMDGPU: Remove disable-irstructurizer subtarget feature
The only real reason to use it is for testing, so replace it with a command line option instead of a potentially function dependent feature. llvm-svn: 273653
This commit is contained in:
parent
43e92fe306
commit
c581611e11
|
@ -216,12 +216,6 @@ def FeatureDumpCodeLower : SubtargetFeature <"dumpcode",
|
|||
"Dump MachineInstrs in the CodeEmitter"
|
||||
>;
|
||||
|
||||
def FeatureIRStructurizer : SubtargetFeature <"disable-irstructurizer",
|
||||
"EnableIRStructurizer",
|
||||
"false",
|
||||
"Disable IR Structurizer"
|
||||
>;
|
||||
|
||||
def FeaturePromoteAlloca : SubtargetFeature <"promote-alloca",
|
||||
"EnablePromoteAlloca",
|
||||
"true",
|
||||
|
|
|
@ -103,7 +103,6 @@ AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS,
|
|||
DebuggerReserveRegs(false),
|
||||
|
||||
EnableVGPRSpilling(false),
|
||||
EnableIRStructurizer(true),
|
||||
EnablePromoteAlloca(false),
|
||||
EnableIfCvt(true),
|
||||
EnableLoadStoreOpt(false),
|
||||
|
|
|
@ -80,7 +80,6 @@ protected:
|
|||
|
||||
// Used as options.
|
||||
bool EnableVGPRSpilling;
|
||||
bool EnableIRStructurizer;
|
||||
bool EnablePromoteAlloca;
|
||||
bool EnableIfCvt;
|
||||
bool EnableLoadStoreOpt;
|
||||
|
@ -218,10 +217,6 @@ public:
|
|||
return CaymanISA;
|
||||
}
|
||||
|
||||
bool IsIRStructurizerEnabled() const {
|
||||
return EnableIRStructurizer;
|
||||
}
|
||||
|
||||
bool isPromoteAllocaEnabled() const {
|
||||
return EnablePromoteAlloca;
|
||||
}
|
||||
|
|
|
@ -40,6 +40,11 @@
|
|||
|
||||
using namespace llvm;
|
||||
|
||||
static cl::opt<bool> EnableR600StructurizeCFG(
|
||||
"r600-ir-structurize",
|
||||
cl::desc("Use StructurizeCFG IR pass"),
|
||||
cl::init(true));
|
||||
|
||||
extern "C" void LLVMInitializeAMDGPUTarget() {
|
||||
// Register the target
|
||||
RegisterTargetMachine<R600TargetMachine> X(TheAMDGPUTarget);
|
||||
|
@ -326,8 +331,8 @@ bool AMDGPUPassConfig::addGCPasses() {
|
|||
|
||||
bool R600PassConfig::addPreISel() {
|
||||
AMDGPUPassConfig::addPreISel();
|
||||
const AMDGPUSubtarget &ST = *getAMDGPUTargetMachine().getSubtargetImpl();
|
||||
if (ST.IsIRStructurizerEnabled())
|
||||
|
||||
if (EnableR600StructurizeCFG)
|
||||
addPass(createStructurizeCFGPass());
|
||||
addPass(createR600TextureIntrinsicsReplacer());
|
||||
return false;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: llc -spec-exec-max-speculation-cost=0 -march=r600 -mattr=disable-irstructurizer -mcpu=redwood < %s | FileCheck %s
|
||||
; RUN: llc -spec-exec-max-speculation-cost=0 -march=r600 -r600-ir-structurize=0 -mcpu=redwood < %s | FileCheck %s
|
||||
|
||||
; These tests make sure the compiler is optimizing branches using predicates
|
||||
; when it is legal to do so.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: llc < %s -march=r600 -mcpu=redwood -mattr=disable-irstructurizer | FileCheck %s
|
||||
; RUN: llc < %s -march=r600 -mcpu=redwood -r600-ir-structurize=0 | FileCheck %s
|
||||
; Test case for a crash in the AMDILCFGStructurizer from a CFG like this:
|
||||
;
|
||||
; entry
|
||||
|
|
Loading…
Reference in New Issue