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:
Matt Arsenault 2016-06-24 06:30:22 +00:00
parent 43e92fe306
commit c581611e11
6 changed files with 9 additions and 16 deletions

View File

@ -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",

View File

@ -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),

View File

@ -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;
}

View File

@ -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;

View File

@ -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.

View File

@ -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