misched: Release only unscheduled nodes into ReadyQ.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156573 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/MachineScheduler.cpp b/lib/CodeGen/MachineScheduler.cpp
index c6679c2..55af229 100644
--- a/lib/CodeGen/MachineScheduler.cpp
+++ b/lib/CodeGen/MachineScheduler.cpp
@@ -643,6 +643,10 @@
 
   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 @@
   }
 
   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