summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-05-10 21:06:14 +0000
committerAndrew Trick <atrick@apple.com>2012-05-10 21:06:14 +0000
commit795c1120a6250504c54782554ab54d35ebaedc4d (patch)
tree643bc71b44fe229de6bdde1f9a04529b265cfe40 /llvm/lib/CodeGen/MachineScheduler.cpp
parent95dafd8b31f257b7d338baf1d6e6582b370aa5f2 (diff)
downloadbcm5719-llvm-795c1120a6250504c54782554ab54d35ebaedc4d.tar.gz
bcm5719-llvm-795c1120a6250504c54782554ab54d35ebaedc4d.zip
misched: Release only unscheduled nodes into ReadyQ.
llvm-svn: 156573
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineScheduler.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp
index c6679c2666e..55af22920ab 100644
--- a/llvm/lib/CodeGen/MachineScheduler.cpp
+++ b/llvm/lib/CodeGen/MachineScheduler.cpp
@@ -643,6 +643,10 @@ struct ReadyQ {
bool empty() const { return Queue.empty(); }
+ iterator begin() { return Queue.begin(); }
+
+ iterator end() { return Queue.end(); }
+
iterator find(SUnit *SU) {
return std::find(Queue.begin(), Queue.end(), SU);
}
@@ -705,10 +709,12 @@ public:
}
virtual void releaseTopNode(SUnit *SU) {
- TopQueue.push(SU);
+ if (!SU->isScheduled)
+ TopQueue.push(SU);
}
virtual void releaseBottomNode(SUnit *SU) {
- BotQueue.push(SU);
+ if (!SU->isScheduled)
+ BotQueue.push(SU);
}
};
} // namespace
OpenPOWER on IntegriCloud