From e93483d855af7acf831d1d8c3c77ed117f0df4d3 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 17 Nov 2008 19:52:36 +0000 Subject: [PATCH] Don't bother doing latency calculations in the "fast" scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59461 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp index ae20774dcf6..5037f67c5e7 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp @@ -139,12 +139,6 @@ void ScheduleDAGFast::Schedule() { /// the AvailableQueue if the count reaches zero. Also update its cycle bound. void ScheduleDAGFast::ReleasePred(SUnit *PredSU, bool isChain, unsigned CurCycle) { - // FIXME: the distance between two nodes is not always == the predecessor's - // latency. For example, the reader can very well read the register written - // by the predecessor later than the issue cycle. It also depends on the - // interrupt model (drain vs. freeze). - PredSU->CycleBound = std::max(PredSU->CycleBound, CurCycle + PredSU->Latency); - --PredSU->NumSuccsLeft; #ifndef NDEBUG @@ -277,7 +271,6 @@ SUnit *ScheduleDAGFast::CopyAndMoveSuccessors(SUnit *SU) { // FIXME: Calculate height / depth and propagate the changes? NewSU->Depth = SU->Depth; NewSU->Height = SU->Height; - ComputeLatency(NewSU); // LoadNode may already exist. This can happen when there is another // load from the same location and producing the same type of value @@ -293,7 +286,6 @@ SUnit *ScheduleDAGFast::CopyAndMoveSuccessors(SUnit *SU) { LoadSU->Depth = SU->Depth; LoadSU->Height = SU->Height; - ComputeLatency(LoadSU); } SUnit *ChainPred = NULL; @@ -530,13 +522,11 @@ void ScheduleDAGFast::ListScheduleBottomUp() { LRegsMap.clear(); SUnit *CurSU = AvailableQueue.pop(); while (CurSU) { - if (CurSU->CycleBound <= CurCycle) { - SmallVector LRegs; - if (!DelayForLiveRegsBottomUp(CurSU, LRegs)) - break; - Delayed = true; - LRegsMap.insert(std::make_pair(CurSU, LRegs)); - } + SmallVector LRegs; + if (!DelayForLiveRegsBottomUp(CurSU, LRegs)) + break; + Delayed = true; + LRegsMap.insert(std::make_pair(CurSU, LRegs)); CurSU->isPending = true; // This SU is not in AvailableQueue right now. NotReady.push_back(CurSU); -- 2.34.1