1212// /
1313// ===----------------------------------------------------------------------===//
1414
15+ #include " SIPostRABundler.h"
1516#include " AMDGPU.h"
1617#include " GCNSubtarget.h"
1718#include " llvm/ADT/SmallSet.h"
@@ -23,13 +24,13 @@ using namespace llvm;
2324
2425namespace {
2526
26- class SIPostRABundler : public MachineFunctionPass {
27+ class SIPostRABundlerLegacy : public MachineFunctionPass {
2728public:
2829 static char ID;
2930
3031public:
31- SIPostRABundler () : MachineFunctionPass(ID) {
32- initializeSIPostRABundlerPass (*PassRegistry::getPassRegistry ());
32+ SIPostRABundlerLegacy () : MachineFunctionPass(ID) {
33+ initializeSIPostRABundlerLegacyPass (*PassRegistry::getPassRegistry ());
3334 }
3435
3536 bool runOnMachineFunction (MachineFunction &MF) override ;
@@ -42,6 +43,11 @@ class SIPostRABundler : public MachineFunctionPass {
4243 AU.setPreservesAll ();
4344 MachineFunctionPass::getAnalysisUsage (AU);
4445 }
46+ };
47+
48+ class SIPostRABundler {
49+ public:
50+ bool run (MachineFunction &MF);
4551
4652private:
4753 const SIRegisterInfo *TRI;
@@ -62,14 +68,15 @@ constexpr uint64_t MemFlags = SIInstrFlags::MTBUF | SIInstrFlags::MUBUF |
6268
6369} // End anonymous namespace.
6470
65- INITIALIZE_PASS (SIPostRABundler, DEBUG_TYPE, " SI post-RA bundler" , false , false )
71+ INITIALIZE_PASS (SIPostRABundlerLegacy, DEBUG_TYPE, " SI post-RA bundler" , false ,
72+ false )
6673
67- char SIPostRABundler ::ID = 0;
74+ char SIPostRABundlerLegacy ::ID = 0;
6875
69- char &llvm::SIPostRABundlerID = SIPostRABundler ::ID;
76+ char &llvm::SIPostRABundlerLegacyID = SIPostRABundlerLegacy ::ID;
7077
7178FunctionPass *llvm::createSIPostRABundlerPass () {
72- return new SIPostRABundler ();
79+ return new SIPostRABundlerLegacy ();
7380}
7481
7582bool SIPostRABundler::isDependentLoad (const MachineInstr &MI) const {
@@ -121,9 +128,19 @@ bool SIPostRABundler::canBundle(const MachineInstr &MI,
121128 !isDependentLoad (NextMI));
122129}
123130
124- bool SIPostRABundler ::runOnMachineFunction (MachineFunction &MF) {
131+ bool SIPostRABundlerLegacy ::runOnMachineFunction (MachineFunction &MF) {
125132 if (skipFunction (MF.getFunction ()))
126133 return false ;
134+ return SIPostRABundler ().run (MF);
135+ }
136+
137+ PreservedAnalyses SIPostRABundlerPass::run (MachineFunction &MF,
138+ MachineFunctionAnalysisManager &) {
139+ SIPostRABundler ().run (MF);
140+ return PreservedAnalyses::all ();
141+ }
142+
143+ bool SIPostRABundler::run (MachineFunction &MF) {
127144
128145 TRI = MF.getSubtarget <GCNSubtarget>().getRegisterInfo ();
129146 BitVector BundleUsedRegUnits (TRI->getNumRegUnits ());
0 commit comments