@@ -228,10 +228,30 @@ class MachineSchedulerImpl : public MachineSchedulerBase {
228228 MachineFunctionAnalysisManager *MFAM = nullptr ;
229229
230230public:
231- MachineSchedulerImpl (MachineFunction &Func, MachineFunctionPass *P);
231+ MachineSchedulerImpl (MachineFunction &Func, MachineFunctionPass *P) : P(P) {
232+ MF = &Func;
233+ MLI = &P->getAnalysis <MachineLoopInfoWrapperPass>().getLI ();
234+ MDT = &P->getAnalysis <MachineDominatorTreeWrapperPass>().getDomTree ();
235+ TM = &P->getAnalysis <TargetPassConfig>().getTM <TargetMachine>();
236+ AA = &P->getAnalysis <AAResultsWrapperPass>().getAAResults ();
237+ LIS = &P->getAnalysis <LiveIntervalsWrapperPass>().getLIS ();
238+ }
239+
232240 MachineSchedulerImpl (MachineFunction &Func,
233241 MachineFunctionAnalysisManager &MFAM,
234- const TargetMachine *TargetM);
242+ const TargetMachine *TargetM)
243+ : MFAM(&MFAM) {
244+ MF = &Func;
245+ TM = TargetM;
246+ MLI = &MFAM.getResult <MachineLoopAnalysis>(Func);
247+ MDT = &MFAM.getResult <MachineDominatorTreeAnalysis>(Func);
248+ auto &FAM =
249+ MFAM.getResult <FunctionAnalysisManagerMachineFunctionProxy>(Func)
250+ .getManager ();
251+ AA = &FAM.getResult <AAManager>(Func.getFunction ());
252+ LIS = &MFAM.getResult <LiveIntervalsAnalysis>(Func);
253+ }
254+
235255 bool run ();
236256
237257protected:
@@ -244,10 +264,27 @@ class PostMachineSchedulerImpl : public MachineSchedulerBase {
244264 MachineFunctionAnalysisManager *MFAM = nullptr ;
245265
246266public:
247- PostMachineSchedulerImpl (MachineFunction &Func, MachineFunctionPass *P);
267+ PostMachineSchedulerImpl (MachineFunction &Func, MachineFunctionPass *P)
268+ : P(P) {
269+ MF = &Func;
270+ MLI = &P->getAnalysis <MachineLoopInfoWrapperPass>().getLI ();
271+ TM = &P->getAnalysis <TargetPassConfig>().getTM <TargetMachine>();
272+ AA = &P->getAnalysis <AAResultsWrapperPass>().getAAResults ();
273+ }
274+
248275 PostMachineSchedulerImpl (MachineFunction &Func,
249276 MachineFunctionAnalysisManager &MFAM,
250- const TargetMachine *TargetM);
277+ const TargetMachine *TargetM)
278+ : MFAM(&MFAM) {
279+ MF = &Func;
280+ TM = TargetM;
281+ MLI = &MFAM.getResult <MachineLoopAnalysis>(Func);
282+ auto &FAM =
283+ MFAM.getResult <FunctionAnalysisManagerMachineFunctionProxy>(Func)
284+ .getManager ();
285+ AA = &FAM.getResult <AAManager>(Func.getFunction ());
286+ }
287+
251288 bool run ();
252289
253290protected:
@@ -257,7 +294,10 @@ class PostMachineSchedulerImpl : public MachineSchedulerBase {
257294// / MachineScheduler runs after coalescing and before register allocation.
258295class MachineSchedulerLegacy : public MachineFunctionPass {
259296public:
260- MachineSchedulerLegacy ();
297+ MachineSchedulerLegacy () : MachineFunctionPass(ID) {
298+ initializeMachineSchedulerLegacyPass (*PassRegistry::getPassRegistry ());
299+ }
300+
261301 void getAnalysisUsage (AnalysisUsage &AU) const override ;
262302 bool runOnMachineFunction (MachineFunction&) override ;
263303
@@ -267,7 +307,10 @@ class MachineSchedulerLegacy : public MachineFunctionPass {
267307// / PostMachineScheduler runs after shortly before code emission.
268308class PostMachineSchedulerLegacy : public MachineFunctionPass {
269309public:
270- PostMachineSchedulerLegacy ();
310+ PostMachineSchedulerLegacy () : MachineFunctionPass(ID) {
311+ initializePostMachineSchedulerLegacyPass (*PassRegistry::getPassRegistry ());
312+ }
313+
271314 void getAnalysisUsage (AnalysisUsage &AU) const override ;
272315 bool runOnMachineFunction (MachineFunction&) override ;
273316
@@ -290,10 +333,6 @@ INITIALIZE_PASS_DEPENDENCY(LiveIntervalsWrapperPass)
290333INITIALIZE_PASS_END(MachineSchedulerLegacy, DEBUG_TYPE,
291334 " Machine Instruction Scheduler" , false , false )
292335
293- MachineSchedulerLegacy::MachineSchedulerLegacy() : MachineFunctionPass(ID) {
294- initializeMachineSchedulerLegacyPass (*PassRegistry::getPassRegistry ());
295- }
296-
297336void MachineSchedulerLegacy::getAnalysisUsage(AnalysisUsage &AU) const {
298337 AU.setPreservesCFG ();
299338 AU.addRequired <MachineDominatorTreeWrapperPass>();
@@ -319,11 +358,6 @@ INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass)
319358INITIALIZE_PASS_END(PostMachineSchedulerLegacy, " postmisched" ,
320359 " PostRA Machine Instruction Scheduler" , false , false )
321360
322- PostMachineSchedulerLegacy::PostMachineSchedulerLegacy()
323- : MachineFunctionPass(ID) {
324- initializePostMachineSchedulerLegacyPass (*PassRegistry::getPassRegistry ());
325- }
326-
327361void PostMachineSchedulerLegacy::getAnalysisUsage(AnalysisUsage &AU) const {
328362 AU.setPreservesCFG ();
329363 AU.addRequired <MachineDominatorTreeWrapperPass>();
@@ -403,31 +437,6 @@ nextIfDebug(MachineBasicBlock::iterator I,
403437 .getNonConstIterator ();
404438}
405439
406- MachineSchedulerImpl::MachineSchedulerImpl (MachineFunction &Func,
407- MachineFunctionPass *P)
408- : P(P) {
409- MF = &Func;
410- MLI = &P->getAnalysis <MachineLoopInfoWrapperPass>().getLI ();
411- MDT = &P->getAnalysis <MachineDominatorTreeWrapperPass>().getDomTree ();
412- TM = &P->getAnalysis <TargetPassConfig>().getTM <TargetMachine>();
413- AA = &P->getAnalysis <AAResultsWrapperPass>().getAAResults ();
414- LIS = &P->getAnalysis <LiveIntervalsWrapperPass>().getLIS ();
415- }
416-
417- MachineSchedulerImpl::MachineSchedulerImpl (MachineFunction &Func,
418- MachineFunctionAnalysisManager &MFAM,
419- const TargetMachine *TargetM)
420- : MFAM(&MFAM) {
421- MF = &Func;
422- TM = TargetM;
423- MLI = &MFAM.getResult <MachineLoopAnalysis>(Func);
424- MDT = &MFAM.getResult <MachineDominatorTreeAnalysis>(Func);
425- auto &FAM = MFAM.getResult <FunctionAnalysisManagerMachineFunctionProxy>(Func)
426- .getManager ();
427- AA = &FAM.getResult <AAManager>(Func.getFunction ());
428- LIS = &MFAM.getResult <LiveIntervalsAnalysis>(Func);
429- }
430-
431440// / Instantiate a ScheduleDAGInstrs that will be owned by the caller.
432441ScheduleDAGInstrs *MachineSchedulerImpl::createMachineScheduler () {
433442 // Select the scheduler, or set the default.
@@ -471,27 +480,6 @@ bool MachineSchedulerImpl::run() {
471480 return true ;
472481}
473482
474- PostMachineSchedulerImpl::PostMachineSchedulerImpl (MachineFunction &Func,
475- MachineFunctionPass *P)
476- : P(P) {
477- MF = &Func;
478- MLI = &P->getAnalysis <MachineLoopInfoWrapperPass>().getLI ();
479- TM = &P->getAnalysis <TargetPassConfig>().getTM <TargetMachine>();
480- AA = &P->getAnalysis <AAResultsWrapperPass>().getAAResults ();
481- }
482-
483- PostMachineSchedulerImpl::PostMachineSchedulerImpl (
484- MachineFunction &Func, MachineFunctionAnalysisManager &MFAM,
485- const TargetMachine *TargetM)
486- : MFAM(&MFAM) {
487- MF = &Func;
488- TM = TargetM;
489- MLI = &MFAM.getResult <MachineLoopAnalysis>(Func);
490- auto &FAM = MFAM.getResult <FunctionAnalysisManagerMachineFunctionProxy>(Func)
491- .getManager ();
492- AA = &FAM.getResult <AAManager>(Func.getFunction ());
493- }
494-
495483// / Instantiate a ScheduleDAGInstrs for PostRA scheduling that will be owned by
496484// / the caller. We don't have a command line option to override the postRA
497485// / scheduler. The Target must configure it.
0 commit comments