aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorJames Molloy <jmolloy@google.com>2019-04-19 09:00:55 +0000
committerJames Molloy <jmolloy@google.com>2019-04-19 09:00:55 +0000
commit9ad4cb3de47e3520adb4caf1dcadd33b72038493 (patch)
tree14b894620cee51a58cb5fb61e51a1b5a739b6837 /llvm/lib/CodeGen/MachineScheduler.cpp
parent7137b54a03479ddef1d45314961bffff631453d3 (diff)
downloadllvm-9ad4cb3de47e3520adb4caf1dcadd33b72038493.zip
llvm-9ad4cb3de47e3520adb4caf1dcadd33b72038493.tar.gz
llvm-9ad4cb3de47e3520adb4caf1dcadd33b72038493.tar.bz2
[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
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineScheduler.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp
index dc2e1f9..d56ea43 100644
--- a/llvm/lib/CodeGen/MachineScheduler.cpp
+++ b/llvm/lib/CodeGen/MachineScheduler.cpp
@@ -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.