@@ -98,12 +98,6 @@ namespace {
98
98
}
99
99
100
100
bool runOnMachineFunction (MachineFunction &Fn) override ;
101
-
102
- private:
103
- bool enablePostRAScheduler (
104
- const TargetSubtargetInfo &ST, CodeGenOptLevel OptLevel,
105
- TargetSubtargetInfo::AntiDepBreakMode &Mode,
106
- TargetSubtargetInfo::RegClassVector &CriticalPathRCs) const ;
107
101
};
108
102
char PostRAScheduler::ID = 0 ;
109
103
@@ -259,13 +253,8 @@ LLVM_DUMP_METHOD void SchedulePostRATDList::dumpSchedule() const {
259
253
}
260
254
#endif
261
255
262
- bool PostRAScheduler::enablePostRAScheduler (
263
- const TargetSubtargetInfo &ST, CodeGenOptLevel OptLevel,
264
- TargetSubtargetInfo::AntiDepBreakMode &Mode,
265
- TargetSubtargetInfo::RegClassVector &CriticalPathRCs) const {
266
- Mode = ST.getAntiDepBreakMode ();
267
- ST.getCriticalPathRCs (CriticalPathRCs);
268
-
256
+ static bool enablePostRAScheduler (const TargetSubtargetInfo &ST,
257
+ CodeGenOptLevel OptLevel) {
269
258
// Check for explicit enable/disable of post-ra scheduling.
270
259
if (EnablePostRAScheduler.getPosition () > 0 )
271
260
return EnablePostRAScheduler;
@@ -278,31 +267,27 @@ bool PostRAScheduler::runOnMachineFunction(MachineFunction &Fn) {
278
267
if (skipFunction (Fn.getFunction ()))
279
268
return false ;
280
269
281
- TII = Fn.getSubtarget ().getInstrInfo ();
282
- MachineLoopInfo &MLI = getAnalysis<MachineLoopInfoWrapperPass>().getLI ();
283
- AliasAnalysis *AA = &getAnalysis<AAResultsWrapperPass>().getAAResults ();
270
+ const auto &Subtarget = Fn.getSubtarget ();
284
271
TargetPassConfig *PassConfig = &getAnalysis<TargetPassConfig>();
285
-
286
- RegClassInfo.runOnMachineFunction (Fn);
287
-
288
- TargetSubtargetInfo::AntiDepBreakMode AntiDepMode =
289
- TargetSubtargetInfo::ANTIDEP_NONE;
290
- SmallVector<const TargetRegisterClass*, 4 > CriticalPathRCs;
291
-
292
272
// Check that post-RA scheduling is enabled for this target.
293
- // This may upgrade the AntiDepMode.
294
- if (!enablePostRAScheduler (Fn.getSubtarget (), PassConfig->getOptLevel (),
295
- AntiDepMode, CriticalPathRCs))
273
+ if (!enablePostRAScheduler (Subtarget, PassConfig->getOptLevel ()))
296
274
return false ;
297
275
298
- // Check for antidep breaking override...
276
+ TII = Subtarget.getInstrInfo ();
277
+ MachineLoopInfo &MLI = getAnalysis<MachineLoopInfoWrapperPass>().getLI ();
278
+ AliasAnalysis *AA = &getAnalysis<AAResultsWrapperPass>().getAAResults ();
279
+ TargetSubtargetInfo::AntiDepBreakMode AntiDepMode =
280
+ Subtarget.getAntiDepBreakMode ();
299
281
if (EnableAntiDepBreaking.getPosition () > 0 ) {
300
282
AntiDepMode = (EnableAntiDepBreaking == " all" )
301
283
? TargetSubtargetInfo::ANTIDEP_ALL
302
284
: ((EnableAntiDepBreaking == " critical" )
303
285
? TargetSubtargetInfo::ANTIDEP_CRITICAL
304
286
: TargetSubtargetInfo::ANTIDEP_NONE);
305
287
}
288
+ SmallVector<const TargetRegisterClass *, 4 > CriticalPathRCs;
289
+ Subtarget.getCriticalPathRCs (CriticalPathRCs);
290
+ RegClassInfo.runOnMachineFunction (Fn);
306
291
307
292
LLVM_DEBUG (dbgs () << " PostRAScheduler\n " );
308
293
0 commit comments