Skip to content

Commit da57b3d

Browse files
c-rhodesGeorgeARM
authored andcommitted
[MISched] Fix off-by-one error in debug output with -misched-cutoff=<n> flag (llvm#137988)
This flag instructs the scheduler to stop scheduling after N instructions, but in the debug output it appears as if it's scheduling N+1 instructions, e.g. $ llc -misched-cutoff=10 -debug-only=machine-scheduler example.ll 2>&1 | grep "^Scheduling SU" | wc -l 11 as it calls pickNode before calling checkSchedLimit.
1 parent 0aa60e8 commit da57b3d

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

llvm/lib/CodeGen/MachineScheduler.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,13 +1003,14 @@ void ScheduleDAGMI::schedule() {
10031003

10041004
bool IsTopNode = false;
10051005
while (true) {
1006+
if (!checkSchedLimit())
1007+
break;
1008+
10061009
LLVM_DEBUG(dbgs() << "** ScheduleDAGMI::schedule picking next node\n");
10071010
SUnit *SU = SchedImpl->pickNode(IsTopNode);
10081011
if (!SU) break;
10091012

10101013
assert(!SU->isScheduled && "Node already scheduled");
1011-
if (!checkSchedLimit())
1012-
break;
10131014

10141015
MachineInstr *MI = SU->getInstr();
10151016
if (IsTopNode) {
@@ -1637,13 +1638,14 @@ void ScheduleDAGMILive::schedule() {
16371638

16381639
bool IsTopNode = false;
16391640
while (true) {
1641+
if (!checkSchedLimit())
1642+
break;
1643+
16401644
LLVM_DEBUG(dbgs() << "** ScheduleDAGMILive::schedule picking next node\n");
16411645
SUnit *SU = SchedImpl->pickNode(IsTopNode);
16421646
if (!SU) break;
16431647

16441648
assert(!SU->isScheduled && "Node already scheduled");
1645-
if (!checkSchedLimit())
1646-
break;
16471649

16481650
scheduleMI(SU, IsTopNode);
16491651

llvm/test/CodeGen/AArch64/misched-cutoff.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# REQUIRES: asserts
66

7-
# CHECK-CUTOFF-COUNT-2: Scheduling SU
7+
# CHECK-CUTOFF-COUNT-1: Scheduling SU
88

99
# NOTE: copied from machine-scheduler.mir
1010

0 commit comments

Comments
 (0)