4040//
4141// ===----------------------------------------------------------------------===//
4242
43+ #include " AMDGPULowerVGPREncoding.h"
4344#include " AMDGPU.h"
4445#include " GCNSubtarget.h"
4546#include " MCTargetDesc/AMDGPUMCTargetDesc.h"
@@ -52,7 +53,7 @@ using namespace llvm;
5253
5354namespace {
5455
55- class AMDGPULowerVGPREncoding : public MachineFunctionPass {
56+ class AMDGPULowerVGPREncoding {
5657 static constexpr unsigned OpNum = 4 ;
5758 static constexpr unsigned BitsPerField = 2 ;
5859 static constexpr unsigned NumFields = 4 ;
@@ -75,16 +76,7 @@ class AMDGPULowerVGPREncoding : public MachineFunctionPass {
7576 };
7677
7778public:
78- static char ID;
79-
80- AMDGPULowerVGPREncoding () : MachineFunctionPass(ID) {}
81-
82- void getAnalysisUsage (AnalysisUsage &AU) const override {
83- AU.setPreservesCFG ();
84- MachineFunctionPass::getAnalysisUsage (AU);
85- }
86-
87- bool runOnMachineFunction (MachineFunction &MF) override ;
79+ bool run (MachineFunction &MF);
8880
8981private:
9082 const SIInstrInfo *TII;
@@ -280,7 +272,7 @@ MachineInstr *AMDGPULowerVGPREncoding::handleClause(MachineInstr *I) {
280272 return I;
281273}
282274
283- bool AMDGPULowerVGPREncoding::runOnMachineFunction (MachineFunction &MF) {
275+ bool AMDGPULowerVGPREncoding::run (MachineFunction &MF) {
284276 const GCNSubtarget &ST = MF.getSubtarget <GCNSubtarget>();
285277 if (!ST.has1024AddressableVGPRs ())
286278 return false ;
@@ -344,11 +336,38 @@ bool AMDGPULowerVGPREncoding::runOnMachineFunction(MachineFunction &MF) {
344336 return Changed;
345337}
346338
339+ class AMDGPULowerVGPREncodingLegacy : public MachineFunctionPass {
340+ public:
341+ static char ID;
342+
343+ AMDGPULowerVGPREncodingLegacy () : MachineFunctionPass(ID) {}
344+
345+ bool runOnMachineFunction (MachineFunction &MF) override {
346+ return AMDGPULowerVGPREncoding ().run (MF);
347+ }
348+
349+ void getAnalysisUsage (AnalysisUsage &AU) const override {
350+ AU.setPreservesCFG ();
351+ MachineFunctionPass::getAnalysisUsage (AU);
352+ }
353+ };
354+
347355} // namespace
348356
349- char AMDGPULowerVGPREncoding ::ID = 0 ;
357+ char AMDGPULowerVGPREncodingLegacy ::ID = 0 ;
350358
351- char &llvm::AMDGPULowerVGPREncodingID = AMDGPULowerVGPREncoding ::ID;
359+ char &llvm::AMDGPULowerVGPREncodingLegacyID = AMDGPULowerVGPREncodingLegacy ::ID;
352360
353- INITIALIZE_PASS (AMDGPULowerVGPREncoding , DEBUG_TYPE,
361+ INITIALIZE_PASS (AMDGPULowerVGPREncodingLegacy , DEBUG_TYPE,
354362 " AMDGPU Lower VGPR Encoding" , false , false )
363+
364+ PreservedAnalyses
365+ AMDGPULowerVGPREncodingPass::run(MachineFunction &MF,
366+ MachineFunctionAnalysisManager &MFAM) {
367+ if (!AMDGPULowerVGPREncoding ().run (MF))
368+ return PreservedAnalyses::all ();
369+
370+ PreservedAnalyses PA;
371+ PA.preserveSet <CFGAnalyses>();
372+ return PA;
373+ }
0 commit comments