diff options
author | Andrew Trick <atrick@apple.com> | 2012-05-10 21:06:14 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2012-05-10 21:06:14 +0000 |
commit | 795c1120a6250504c54782554ab54d35ebaedc4d (patch) | |
tree | 643bc71b44fe229de6bdde1f9a04529b265cfe40 /llvm/lib/CodeGen | |
parent | 95dafd8b31f257b7d338baf1d6e6582b370aa5f2 (diff) | |
download | bcm5719-llvm-795c1120a6250504c54782554ab54d35ebaedc4d.tar.gz bcm5719-llvm-795c1120a6250504c54782554ab54d35ebaedc4d.zip |
misched: Release only unscheduled nodes into ReadyQ.
llvm-svn: 156573
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/MachineScheduler.cpp | 10 |
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 |