@@ -206,29 +206,30 @@ void RAGreedyPass::printPipeline(raw_ostream &OS, function_ref<StringRef(StringR
206
206
OS << " greedy<" << FilterName << ' >' ;
207
207
}
208
208
209
+ RAGreedy::RequiredAnalyses::RequiredAnalyses (
210
+ MachineFunction &MF, MachineFunctionAnalysisManager &MFAM) {
211
+ LIS = &MFAM.getResult <LiveIntervalsAnalysis>(MF);
212
+ LRM = &MFAM.getResult <LiveRegMatrixAnalysis>(MF);
213
+ LSS = &MFAM.getResult <LiveStacksAnalysis>(MF);
214
+ Indexes = &MFAM.getResult <SlotIndexesAnalysis>(MF);
215
+ MBFI = &MFAM.getResult <MachineBlockFrequencyAnalysis>(MF);
216
+ DomTree = &MFAM.getResult <MachineDominatorTreeAnalysis>(MF);
217
+ ORE = &MFAM.getResult <MachineOptimizationRemarkEmitterAnalysis>(MF);
218
+ Loops = &MFAM.getResult <MachineLoopAnalysis>(MF);
219
+ Bundles = &MFAM.getResult <EdgeBundlesAnalysis>(MF);
220
+ SpillPlacer = &MFAM.getResult <SpillPlacementAnalysis>(MF);
221
+ DebugVars = &MFAM.getResult <LiveDebugVariablesAnalysis>(MF);
222
+ EvictProvider = MFAM.getResult <RegAllocEvictionAdvisorAnalysis>(MF).Provider ;
223
+ PriorityProvider =
224
+ MFAM.getResult <RegAllocPriorityAdvisorAnalysis>(MF).Provider ;
225
+ VRM = &MFAM.getResult <VirtRegMapAnalysis>(MF);
226
+ }
227
+
209
228
PreservedAnalyses RAGreedyPass::run (MachineFunction &MF,
210
229
MachineFunctionAnalysisManager &MFAM) {
211
230
MFPropsModifier _ (*this , MF);
212
231
213
- RAGreedy::RequiredAnalyses Analyses;
214
-
215
- Analyses.LIS = &MFAM.getResult <LiveIntervalsAnalysis>(MF);
216
- Analyses.LRM = &MFAM.getResult <LiveRegMatrixAnalysis>(MF);
217
- Analyses.LSS = &MFAM.getResult <LiveStacksAnalysis>(MF);
218
- Analyses.Indexes = &MFAM.getResult <SlotIndexesAnalysis>(MF);
219
- Analyses.MBFI = &MFAM.getResult <MachineBlockFrequencyAnalysis>(MF);
220
- Analyses.DomTree = &MFAM.getResult <MachineDominatorTreeAnalysis>(MF);
221
- Analyses.ORE = &MFAM.getResult <MachineOptimizationRemarkEmitterAnalysis>(MF);
222
- Analyses.Loops = &MFAM.getResult <MachineLoopAnalysis>(MF);
223
- Analyses.Bundles = &MFAM.getResult <EdgeBundlesAnalysis>(MF);
224
- Analyses.SpillPlacer = &MFAM.getResult <SpillPlacementAnalysis>(MF);
225
- Analyses.DebugVars = &MFAM.getResult <LiveDebugVariablesAnalysis>(MF);
226
- Analyses.EvictProvider =
227
- MFAM.getResult <RegAllocEvictionAdvisorAnalysis>(MF).Provider ;
228
- Analyses.PriorityProvider =
229
- MFAM.getResult <RegAllocPriorityAdvisorAnalysis>(MF).Provider ;
230
- Analyses.VRM = &MFAM.getResult <VirtRegMapAnalysis>(MF);
231
-
232
+ RAGreedy::RequiredAnalyses Analyses (MF, MFAM);
232
233
RAGreedy Impl (Analyses, Opts.Filter );
233
234
234
235
bool Changed = Impl.run (MF);
@@ -246,29 +247,27 @@ PreservedAnalyses RAGreedyPass::run(MachineFunction &MF,
246
247
return PA;
247
248
}
248
249
249
- bool RAGreedyLegacy::runOnMachineFunction (MachineFunction &MF) {
250
-
251
- RAGreedy::RequiredAnalyses Analyses;
252
- Analyses.VRM = &getAnalysis<VirtRegMapWrapperLegacy>().getVRM ();
253
- Analyses.LIS = &getAnalysis<LiveIntervalsWrapperPass>().getLIS ();
254
- Analyses.LSS = &getAnalysis<LiveStacksWrapperLegacy>().getLS ();
255
- Analyses.LRM = &getAnalysis<LiveRegMatrixWrapperLegacy>().getLRM ();
256
- Analyses.Indexes = &getAnalysis<SlotIndexesWrapperPass>().getSI ();
257
- Analyses.MBFI =
258
- &getAnalysis<MachineBlockFrequencyInfoWrapperPass>().getMBFI ();
259
- Analyses.DomTree =
260
- &getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree ();
261
- Analyses.ORE = &getAnalysis<MachineOptimizationRemarkEmitterPass>().getORE ();
262
- Analyses.Loops = &getAnalysis<MachineLoopInfoWrapperPass>().getLI ();
263
- Analyses.Bundles = &getAnalysis<EdgeBundlesWrapperLegacy>().getEdgeBundles ();
264
- Analyses.SpillPlacer =
265
- &getAnalysis<SpillPlacementWrapperLegacy>().getResult ();
266
- Analyses.DebugVars = &getAnalysis<LiveDebugVariablesWrapperLegacy>().getLDV ();
267
- Analyses.EvictProvider =
268
- &getAnalysis<RegAllocEvictionAdvisorAnalysisLegacy>().getProvider ();
269
- Analyses.PriorityProvider =
270
- &getAnalysis<RegAllocPriorityAdvisorAnalysisLegacy>().getProvider ();
250
+ RAGreedy::RequiredAnalyses::RequiredAnalyses (Pass &P) {
251
+ VRM = &P.getAnalysis <VirtRegMapWrapperLegacy>().getVRM ();
252
+ LIS = &P.getAnalysis <LiveIntervalsWrapperPass>().getLIS ();
253
+ LSS = &P.getAnalysis <LiveStacksWrapperLegacy>().getLS ();
254
+ LRM = &P.getAnalysis <LiveRegMatrixWrapperLegacy>().getLRM ();
255
+ Indexes = &P.getAnalysis <SlotIndexesWrapperPass>().getSI ();
256
+ MBFI = &P.getAnalysis <MachineBlockFrequencyInfoWrapperPass>().getMBFI ();
257
+ DomTree = &P.getAnalysis <MachineDominatorTreeWrapperPass>().getDomTree ();
258
+ ORE = &P.getAnalysis <MachineOptimizationRemarkEmitterPass>().getORE ();
259
+ Loops = &P.getAnalysis <MachineLoopInfoWrapperPass>().getLI ();
260
+ Bundles = &P.getAnalysis <EdgeBundlesWrapperLegacy>().getEdgeBundles ();
261
+ SpillPlacer = &P.getAnalysis <SpillPlacementWrapperLegacy>().getResult ();
262
+ DebugVars = &P.getAnalysis <LiveDebugVariablesWrapperLegacy>().getLDV ();
263
+ EvictProvider =
264
+ &P.getAnalysis <RegAllocEvictionAdvisorAnalysisLegacy>().getProvider ();
265
+ PriorityProvider =
266
+ &P.getAnalysis <RegAllocPriorityAdvisorAnalysisLegacy>().getProvider ();
267
+ }
271
268
269
+ bool RAGreedyLegacy::runOnMachineFunction (MachineFunction &MF) {
270
+ RAGreedy::RequiredAnalyses Analyses (*this );
272
271
RAGreedy Impl (Analyses, F);
273
272
return Impl.run (MF);
274
273
}
0 commit comments