@@ -54,43 +54,63 @@ void MachineCycleInfoWrapperPass::releaseMemory() {
5454 F = nullptr ;
5555}
5656
57+ AnalysisKey MachineCycleAnalysis::Key;
58+
59+ MachineCycleInfo
60+ MachineCycleAnalysis::run (MachineFunction &MF,
61+ MachineFunctionAnalysisManager &MFAM) {
62+ MachineCycleInfo MCI;
63+ MCI.compute (MF);
64+ return MCI;
65+ }
66+
5767namespace {
58- class MachineCycleInfoPrinterPass : public MachineFunctionPass {
68+ class MachineCycleInfoPrinterLegacy : public MachineFunctionPass {
5969public:
6070 static char ID;
6171
62- MachineCycleInfoPrinterPass ();
72+ MachineCycleInfoPrinterLegacy ();
6373
6474 bool runOnMachineFunction (MachineFunction &F) override ;
6575 void getAnalysisUsage (AnalysisUsage &AU) const override ;
6676};
6777} // namespace
6878
69- char MachineCycleInfoPrinterPass ::ID = 0 ;
79+ char MachineCycleInfoPrinterLegacy ::ID = 0 ;
7080
71- MachineCycleInfoPrinterPass::MachineCycleInfoPrinterPass ()
81+ MachineCycleInfoPrinterLegacy::MachineCycleInfoPrinterLegacy ()
7282 : MachineFunctionPass(ID) {
73- initializeMachineCycleInfoPrinterPassPass (*PassRegistry::getPassRegistry ());
83+ initializeMachineCycleInfoPrinterLegacyPass (*PassRegistry::getPassRegistry ());
7484}
7585
76- INITIALIZE_PASS_BEGIN (MachineCycleInfoPrinterPass , " print-machine-cycles" ,
86+ INITIALIZE_PASS_BEGIN (MachineCycleInfoPrinterLegacy , " print-machine-cycles" ,
7787 " Print Machine Cycle Info Analysis" , true , true )
7888INITIALIZE_PASS_DEPENDENCY(MachineCycleInfoWrapperPass)
79- INITIALIZE_PASS_END(MachineCycleInfoPrinterPass , " print-machine-cycles" ,
89+ INITIALIZE_PASS_END(MachineCycleInfoPrinterLegacy , " print-machine-cycles" ,
8090 " Print Machine Cycle Info Analysis" , true , true )
8191
82- void MachineCycleInfoPrinterPass ::getAnalysisUsage(AnalysisUsage &AU) const {
92+ void MachineCycleInfoPrinterLegacy ::getAnalysisUsage(AnalysisUsage &AU) const {
8393 AU.setPreservesAll ();
8494 AU.addRequired <MachineCycleInfoWrapperPass>();
8595 MachineFunctionPass::getAnalysisUsage (AU);
8696}
8797
88- bool MachineCycleInfoPrinterPass ::runOnMachineFunction (MachineFunction &F) {
98+ bool MachineCycleInfoPrinterLegacy ::runOnMachineFunction (MachineFunction &F) {
8999 auto &CI = getAnalysis<MachineCycleInfoWrapperPass>();
90100 CI.print (errs ());
91101 return false ;
92102}
93103
104+ PreservedAnalyses
105+ MachineCycleInfoPrinterPass::run (MachineFunction &MF,
106+ MachineFunctionAnalysisManager &MFAM) {
107+ OS << " MachineCycleInfo for function: " << MF.getName () << " \n " ;
108+
109+ auto &MCI = MFAM.getResult <MachineCycleAnalysis>(MF);
110+ MCI.print (OS);
111+ return PreservedAnalyses::all ();
112+ }
113+
94114bool llvm::isCycleInvariant (const MachineCycle *Cycle, MachineInstr &I) {
95115 MachineFunction *MF = I.getParent ()->getParent ();
96116 MachineRegisterInfo *MRI = &MF->getRegInfo ();
0 commit comments