AMDGPU: Initialize SIFixSGPRCopies so -print-after works
llvm-svn: 251995
This commit is contained in:
parent
d9d659aa23
commit
782c03bb7e
|
@ -44,7 +44,7 @@ FunctionPass *createSIShrinkInstructionsPass();
|
|||
FunctionPass *createSILoadStoreOptimizerPass(TargetMachine &tm);
|
||||
FunctionPass *createSILowerControlFlowPass(TargetMachine &tm);
|
||||
FunctionPass *createSIFixControlFlowLiveIntervalsPass();
|
||||
FunctionPass *createSIFixSGPRCopiesPass(TargetMachine &tm);
|
||||
FunctionPass *createSIFixSGPRCopiesPass();
|
||||
FunctionPass *createSIFixSGPRLiveRangesPass();
|
||||
FunctionPass *createSICodeEmitterPass(formatted_raw_ostream &OS);
|
||||
FunctionPass *createSIInsertWaits(TargetMachine &tm);
|
||||
|
@ -53,6 +53,9 @@ FunctionPass *createSIPrepareScratchRegs();
|
|||
void initializeSIFoldOperandsPass(PassRegistry &);
|
||||
extern char &SIFoldOperandsID;
|
||||
|
||||
void initializeSIFixSGPRCopiesPass(PassRegistry &);
|
||||
extern char &SIFixSGPRCopiesID;
|
||||
|
||||
void initializeSILowerI1CopiesPass(PassRegistry &);
|
||||
extern char &SILowerI1CopiesID;
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ extern "C" void LLVMInitializeAMDGPUTarget() {
|
|||
|
||||
PassRegistry *PR = PassRegistry::getPassRegistry();
|
||||
initializeSILowerI1CopiesPass(*PR);
|
||||
initializeSIFixSGPRCopiesPass(*PR);
|
||||
initializeSIFoldOperandsPass(*PR);
|
||||
initializeSIFixSGPRLiveRangesPass(*PR);
|
||||
initializeSIFixControlFlowLiveIntervalsPass(*PR);
|
||||
|
@ -276,7 +277,7 @@ bool GCNPassConfig::addPreISel() {
|
|||
bool GCNPassConfig::addInstSelector() {
|
||||
AMDGPUPassConfig::addInstSelector();
|
||||
addPass(createSILowerI1CopiesPass());
|
||||
addPass(createSIFixSGPRCopiesPass(*TM));
|
||||
addPass(&SIFixSGPRCopiesID);
|
||||
addPass(createSIFoldOperandsPass());
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -82,12 +82,10 @@ using namespace llvm;
|
|||
namespace {
|
||||
|
||||
class SIFixSGPRCopies : public MachineFunctionPass {
|
||||
|
||||
private:
|
||||
public:
|
||||
static char ID;
|
||||
|
||||
public:
|
||||
SIFixSGPRCopies(TargetMachine &tm) : MachineFunctionPass(ID) { }
|
||||
SIFixSGPRCopies() : MachineFunctionPass(ID) { }
|
||||
|
||||
bool runOnMachineFunction(MachineFunction &MF) override;
|
||||
|
||||
|
@ -103,10 +101,15 @@ public:
|
|||
|
||||
} // End anonymous namespace
|
||||
|
||||
INITIALIZE_PASS(SIFixSGPRCopies, DEBUG_TYPE,
|
||||
"SI Fix SGPR copies", false, false)
|
||||
|
||||
char SIFixSGPRCopies::ID = 0;
|
||||
|
||||
FunctionPass *llvm::createSIFixSGPRCopiesPass(TargetMachine &tm) {
|
||||
return new SIFixSGPRCopies(tm);
|
||||
char &llvm::SIFixSGPRCopiesID = SIFixSGPRCopies::ID;
|
||||
|
||||
FunctionPass *llvm::createSIFixSGPRCopiesPass() {
|
||||
return new SIFixSGPRCopies();
|
||||
}
|
||||
|
||||
static bool hasVGPROperands(const MachineInstr &MI, const SIRegisterInfo *TRI) {
|
||||
|
|
Loading…
Reference in New Issue