Skip to content

Commit cac805e

Browse files
committed
[AMDGPU][AMDGPUIfConverter] create new pass (boilerplate only)
1 parent d790690 commit cac805e

File tree

4 files changed

+38
-8
lines changed

4 files changed

+38
-8
lines changed

llvm/lib/Target/AMDGPU/AMDGPU.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,9 @@ extern char &AMDGPUCodeGenPrepareID;
369369
void initializeAMDGPURemoveIncompatibleFunctionsPass(PassRegistry &);
370370
extern char &AMDGPURemoveIncompatibleFunctionsID;
371371

372+
void initializeAMDGPUIfConverterPass(PassRegistry &);
373+
extern char &AMDGPUIfConverterID;
374+
372375
void initializeAMDGPULateCodeGenPrepareLegacyPass(PassRegistry &);
373376
extern char &AMDGPULateCodeGenPrepareLegacyID;
374377

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include <llvm/CodeGen/MachineFunctionPass.h>
2+
3+
#include "AMDGPU.h"
4+
5+
using namespace llvm;
6+
7+
namespace {
8+
#define DEBUG_TYPE "amdgpu-if-cvt"
9+
const char PassName[] = "AMDGPU if conversion";
10+
11+
class AMDGPUIfConverter : public MachineFunctionPass {
12+
public:
13+
static char ID;
14+
15+
AMDGPUIfConverter() : MachineFunctionPass(ID) {}
16+
17+
bool runOnMachineFunction(MachineFunction &MF) override { return false; }
18+
19+
void getAnalysisUsage(AnalysisUsage &AU) const override {
20+
MachineFunctionPass::getAnalysisUsage(AU);
21+
}
22+
23+
StringRef getPassName() const override { return PassName; }
24+
};
25+
26+
char AMDGPUIfConverter::ID = 0;
27+
28+
} // namespace
29+
30+
char &llvm::AMDGPUIfConverterID = AMDGPUIfConverter::ID;
31+
INITIALIZE_PASS_BEGIN(AMDGPUIfConverter, DEBUG_TYPE, PassName, false, false)
32+
INITIALIZE_PASS_END(AMDGPUIfConverter, DEBUG_TYPE, PassName, false, false)

llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,6 @@ static VGPRRegisterRegAlloc fastRegAllocVGPR(
203203
"fast", "fast register allocator", createFastVGPRRegisterAllocator);
204204
} // anonymous namespace
205205

206-
static cl::opt<bool>
207-
EnableEarlyIfConversion("amdgpu-early-ifcvt", cl::Hidden,
208-
cl::desc("Run early if-conversion"),
209-
cl::init(false));
210-
211206
static cl::opt<bool>
212207
OptExecMaskPreRA("amdgpu-opt-exec-mask-pre-ra", cl::Hidden,
213208
cl::desc("Run pre-RA exec mask optimizations"),
@@ -447,6 +442,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAMDGPUTarget() {
447442
initializeAMDGPURewriteUndefForPHILegacyPass(*PR);
448443
initializeAMDGPUUnifyMetadataPass(*PR);
449444
initializeSIAnnotateControlFlowLegacyPass(*PR);
445+
initializeAMDGPUIfConverterPass(*PR);
450446
initializeAMDGPUInsertSingleUseVDSTPass(*PR);
451447
initializeAMDGPUInsertDelayAluPass(*PR);
452448
initializeSIInsertHardClausesPass(*PR);
@@ -1285,9 +1281,7 @@ void GCNPassConfig::addMachineSSAOptimization() {
12851281
}
12861282

12871283
bool GCNPassConfig::addILPOpts() {
1288-
if (EnableEarlyIfConversion)
1289-
addPass(&EarlyIfConverterID);
1290-
1284+
addPass(&AMDGPUIfConverterID);
12911285
TargetPassConfig::addILPOpts();
12921286
return false;
12931287
}

llvm/lib/Target/AMDGPU/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ add_llvm_target(AMDGPUCodeGen
5959
AMDGPUGlobalISelDivergenceLowering.cpp
6060
AMDGPUGlobalISelUtils.cpp
6161
AMDGPUHSAMetadataStreamer.cpp
62+
AMDGPUIfConverter.cpp
6263
AMDGPUInsertDelayAlu.cpp
6364
AMDGPUInstCombineIntrinsic.cpp
6465
AMDGPUInstrInfo.cpp

0 commit comments

Comments
 (0)