[llvm] [CodeGen][MachineScheduler][NFC]Update some comments of scheduler (PR #74705)

Ningning Shi 史宁宁 via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 7 20:00:12 PST 2023


================
@@ -747,9 +747,9 @@ void ScheduleDAGMI::finishBlock() {
   ScheduleDAGInstrs::finishBlock();
 }
 
-/// enterRegion - Called back from MachineScheduler::runOnMachineFunction after
-/// crossing a scheduling boundary. [begin, end) includes all instructions in
-/// the region, including the boundary itself and single-instruction regions
+/// enterRegion - Called back from PostMachineScheduler::runOnMachineFunction
----------------
shining1984 wrote:

1. `MachineScheduler::runOnMachineFunction` and `PostMachineScheduler::runOnMachineFunction` all call the `MachineSchedulerBase::scheduleRegions`. 
2. Then `MachineSchedulerBase::scheduleRegions` call the `Scheduler.enterRegion` and `Scheduler.schedule`.
3. The `Scheduler` in `MachineSchedulerBase::scheduleRegions` is from `MachineScheduler::runOnMachineFunction` or `PostMachineScheduler::runOnMachineFunction.` 
4. When `Scheduler` is from the `MachineScheduler::runOnMachineFunction`, it is return from the `MachineScheduler::createMachineScheduler()`, which get a new `ScheduleDAGMILive` pointer from the `PassConfig->createMachineScheduler(this) `or `createGenericSchedLive`. Then the  `Scheduler` is `ScheduleDAGMILive` , the  `Scheduler.enterRegion` is `ScheduleDAGMILive.enterRegion`. So, we can say the `ScheduleDAGMILive::enterRegion` is called back from  `MachineScheduler::runOnMachineFunction`. The `ScheduleDAGMILive::schedule()` is same as the `ScheduleDAGMILive::enterRegion`.
5. When `Scheduler` is from the `PostMachineScheduler::runOnMachineFunction`, it is return from the `PostMachineScheduler::createPostMachineScheduler()`, which get a new `ScheduleDAGMI` pointer from the `PassConfig->createPostMachineScheduler(this) `or `createGenericSchedPostRA`. Then the  `Scheduler` is `ScheduleDAGMI` , the  `Scheduler.enterRegion` is `ScheduleDAGMI.enterRegion`. So, we can say the `ScheduleDAGMI::enterRegion` is called back from  `PostMachineScheduler::runOnMachineFunction`.The `ScheduleDAGMI::schedule()` is same as the `ScheduleDAGMI::enterRegion`.
6. I changed the two comments from `MachineScheduler::runOnMachineFunction` to `PostMachineScheduler::runOnMachineFunction` is according the "5".


https://github.com/llvm/llvm-project/pull/74705


More information about the llvm-commits mailing list