From 16716c730216e461a9b5b71d19f1c4eef257cecd Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Thu, 10 May 2012 21:06:14 +0000 Subject: misched: Release only unscheduled nodes into ReadyQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156573 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/MachineScheduler.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib/CodeGen/MachineScheduler.cpp') diff --git a/lib/CodeGen/MachineScheduler.cpp b/lib/CodeGen/MachineScheduler.cpp index c6679c2666..55af22920a 100644 --- a/lib/CodeGen/MachineScheduler.cpp +++ b/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 -- cgit v1.2.3-18-g5258