diff options
Diffstat (limited to 'lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp index 15ba26679c..616a28d8b9 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp @@ -1137,15 +1137,17 @@ void ScheduleDAGRRList::ReleaseSucc(SUnit *SuccSU, bool isChain, void ScheduleDAGRRList::ScheduleNodeTopDown(SUnit *SU, unsigned CurCycle) { DOUT << "*** Scheduling [" << CurCycle << "]: "; DEBUG(SU->dump(DAG)); - SU->Cycle = CurCycle; - AvailableQueue->ScheduledNode(SU); + SU->Cycle = CurCycle; + Sequence.push_back(SU); // Top down: release successors for (SUnit::succ_iterator I = SU->Succs.begin(), E = SU->Succs.end(); I != E; ++I) ReleaseSucc(I->Dep, I->isCtrl, CurCycle); + SU->isScheduled = true; + AvailableQueue->ScheduledNode(SU); } /// ListScheduleTopDown - The main loop of list scheduling for top-down @@ -1181,7 +1183,6 @@ void ScheduleDAGRRList::ListScheduleTopDown() { Sequence.push_back(0); else { ScheduleNodeTopDown(CurSU, CurCycle); - Sequence.push_back(CurSU); } ++CurCycle; } |