[PATCH] [MachineScheduler] Check pending instructions when an instruction is scheduled

Pending instructions that may have been blocked from being available by the HazardRecognizer may no longer may not be blocked any more when an instruction is scheduled; pending instructions should be re-checked in this case.

This is primarily aimed at VLIW targets with large parallelism and esoteric constraints.

No testcase as no in-tree targets have this behavior.

Differential revision: https://reviews.llvm.org/D60861

llvm-svn: 358743
This commit is contained in:
James Molloy 2019-04-19 09:00:55 +00:00
parent 7137b54a03
commit 9ad4cb3de4
1 changed files with 2 additions and 0 deletions

View File

@ -2159,6 +2159,8 @@ void SchedBoundary::bumpNode(SUnit *SU) {
HazardRec->Reset();
}
HazardRec->EmitInstruction(SU);
// Scheduling an instruction may have made pending instructions available.
CheckPending = true;
}
// checkHazard should prevent scheduling multiple instructions per cycle that
// exceed the issue width.