@@ -54,43 +54,59 @@ void MachineCycleInfoWrapperPass::releaseMemory() {
5454 F = nullptr ;
5555}
5656
57+ AnalysisKey MachineCycleAnalysis::Key;
58+
59+ MachineCycleInfo MachineCycleAnalysis::run (MachineFunction &MF, MachineFunctionAnalysisManager &MFAM) {
60+ MachineCycleInfo MCI;
61+ MCI.compute (MF);
62+ return MCI;
63+ }
64+
5765namespace {
58- class MachineCycleInfoPrinterPass : public MachineFunctionPass {
66+ class MachineCycleInfoPrinterLegacy : public MachineFunctionPass {
5967public:
6068 static char ID;
6169
62- MachineCycleInfoPrinterPass ();
70+ MachineCycleInfoPrinterLegacy ();
6371
6472 bool runOnMachineFunction (MachineFunction &F) override ;
6573 void getAnalysisUsage (AnalysisUsage &AU) const override ;
6674};
6775} // namespace
6876
69- char MachineCycleInfoPrinterPass ::ID = 0 ;
77+ char MachineCycleInfoPrinterLegacy ::ID = 0 ;
7078
71- MachineCycleInfoPrinterPass::MachineCycleInfoPrinterPass ()
79+ MachineCycleInfoPrinterLegacy::MachineCycleInfoPrinterLegacy ()
7280 : MachineFunctionPass(ID) {
73- initializeMachineCycleInfoPrinterPassPass (*PassRegistry::getPassRegistry ());
81+ initializeMachineCycleInfoPrinterLegacyPass (*PassRegistry::getPassRegistry ());
7482}
7583
76- INITIALIZE_PASS_BEGIN (MachineCycleInfoPrinterPass , " print-machine-cycles" ,
84+ INITIALIZE_PASS_BEGIN (MachineCycleInfoPrinterLegacy , " print-machine-cycles" ,
7785 " Print Machine Cycle Info Analysis" , true , true )
7886INITIALIZE_PASS_DEPENDENCY(MachineCycleInfoWrapperPass)
79- INITIALIZE_PASS_END(MachineCycleInfoPrinterPass , " print-machine-cycles" ,
87+ INITIALIZE_PASS_END(MachineCycleInfoPrinterLegacy , " print-machine-cycles" ,
8088 " Print Machine Cycle Info Analysis" , true , true )
8189
82- void MachineCycleInfoPrinterPass ::getAnalysisUsage(AnalysisUsage &AU) const {
90+ void MachineCycleInfoPrinterLegacy ::getAnalysisUsage(AnalysisUsage &AU) const {
8391 AU.setPreservesAll ();
8492 AU.addRequired <MachineCycleInfoWrapperPass>();
8593 MachineFunctionPass::getAnalysisUsage (AU);
8694}
8795
88- bool MachineCycleInfoPrinterPass ::runOnMachineFunction (MachineFunction &F) {
96+ bool MachineCycleInfoPrinterLegacy ::runOnMachineFunction (MachineFunction &F) {
8997 auto &CI = getAnalysis<MachineCycleInfoWrapperPass>();
9098 CI.print (errs ());
9199 return false ;
92100}
93101
102+ PreservedAnalyses MachineCycleInfoPrinterPass::run (MachineFunction &MF, MachineFunctionAnalysisManager &MFAM) {
103+ OS << " MachineCycleInfo for function: " << MF.getName () << " \n " ;
104+
105+ auto &MCI = MFAM.getResult <MachineCycleAnalysis>(MF);
106+ MCI.print (OS);
107+ return PreservedAnalyses::all ();
108+ }
109+
94110bool llvm::isCycleInvariant (const MachineCycle *Cycle, MachineInstr &I) {
95111 MachineFunction *MF = I.getParent ()->getParent ();
96112 MachineRegisterInfo *MRI = &MF->getRegInfo ();
0 commit comments