@@ -241,6 +241,12 @@ class MachineSchedStrategy {
241241 // / Tell the strategy that MBB is about to be processed.
242242 virtual void enterMBB (MachineBasicBlock *MBB) {};
243243
244+ virtual bool disableForRegionPreRA (MachineBasicBlock::iterator begin,
245+ MachineBasicBlock::iterator end,
246+ unsigned regioninstrs) const {
247+ return false ;
248+ }
249+
244250 // / Tell the strategy that current MBB is done.
245251 virtual void leaveMBB () {};
246252
@@ -487,6 +493,13 @@ class ScheduleDAGMILive : public ScheduleDAGMI {
487493 MachineBasicBlock::iterator end,
488494 unsigned regioninstrs) override ;
489495
496+ bool disableForRegion (MachineBasicBlock *bb,
497+ MachineBasicBlock::iterator begin,
498+ MachineBasicBlock::iterator end,
499+ unsigned regioninstrs) const override {
500+ return SchedImpl->disableForRegionPreRA (begin, end, regioninstrs);
501+ }
502+
490503 // / Implement ScheduleDAGInstrs interface for scheduling a sequence of
491504 // / reorderable instructions.
492505 void schedule () override ;
@@ -1219,6 +1232,10 @@ class GenericScheduler : public GenericSchedulerBase {
12191232
12201233 void dumpPolicy () const override ;
12211234
1235+ bool disableForRegionPreRA (MachineBasicBlock::iterator Begin,
1236+ MachineBasicBlock::iterator End,
1237+ unsigned NumRegionInstrs) const override ;
1238+
12221239 bool shouldTrackPressure () const override {
12231240 return RegionPolicy.ShouldTrackPressure ;
12241241 }
0 commit comments