From 74d2fd8dd847e0ebccef30e2c5907ff09495d518 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Fri, 28 Sep 2007 19:24:24 +0000 Subject: [PATCH] Trim some unneeded fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42442 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/ScheduleDAG.h | 33 ++++++------------- lib/CodeGen/SelectionDAG/ScheduleDAG.cpp | 2 -- lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp | 11 +++---- .../SelectionDAG/ScheduleDAGRRList.cpp | 25 +++++--------- 4 files changed, 22 insertions(+), 49 deletions(-) diff --git a/include/llvm/CodeGen/ScheduleDAG.h b/include/llvm/CodeGen/ScheduleDAG.h index 9bf08345ae0..cb95c214dfb 100644 --- a/include/llvm/CodeGen/ScheduleDAG.h +++ b/include/llvm/CodeGen/ScheduleDAG.h @@ -113,8 +113,6 @@ namespace llvm { short NumSuccs; // # of sucss. short NumPredsLeft; // # of preds not scheduled. short NumSuccsLeft; // # of succs not scheduled. - short NumChainPredsLeft; // # of chain preds not scheduled. - short NumChainSuccsLeft; // # of chain succs not scheduled. bool isTwoAddress : 1; // Is a two-address instruction. bool isCommutable : 1; // Is a commutable instruction. bool hasImplicitDefs : 1; // Has implicit physical reg defs. @@ -131,7 +129,6 @@ namespace llvm { SUnit(SDNode *node, unsigned nodenum) : Node(node), InstanceNo(0), NodeNum(nodenum), Latency(0), NumPreds(0), NumSuccs(0), NumPredsLeft(0), NumSuccsLeft(0), - NumChainPredsLeft(0), NumChainSuccsLeft(0), isTwoAddress(false), isCommutable(false), hasImplicitDefs(false), isPending(false), isAvailable(false), isScheduled(false), CycleBound(0), Cycle(0), Depth(0), Height(0), @@ -147,19 +144,14 @@ namespace llvm { return false; Preds.push_back(SDep(N, PhyReg, Cost, isCtrl, isSpecial)); N->Succs.push_back(SDep(this, PhyReg, Cost, isCtrl, isSpecial)); - if (isCtrl) { - if (!N->isScheduled) - ++NumChainPredsLeft; - if (!isScheduled) - ++N->NumChainSuccsLeft; - } else { + if (!isCtrl) { ++NumPreds; ++N->NumSuccs; - if (!N->isScheduled) - ++NumPredsLeft; - if (!isScheduled) - ++N->NumSuccsLeft; } + if (!N->isScheduled) + ++NumPredsLeft; + if (!isScheduled) + ++N->NumSuccsLeft; return true; } @@ -178,19 +170,14 @@ namespace llvm { } assert(FoundSucc && "Mismatching preds / succs lists!"); Preds.erase(I); - if (isCtrl) { - if (!N->isScheduled) - --NumChainPredsLeft; - if (!isScheduled) - --NumChainSuccsLeft; - } else { + if (!isCtrl) { --NumPreds; --N->NumSuccs; - if (!N->isScheduled) - --NumPredsLeft; - if (!isScheduled) - --N->NumSuccsLeft; } + if (!N->isScheduled) + --NumPredsLeft; + if (!isScheduled) + --N->NumSuccsLeft; return true; } return false; diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp index 6197b6fa0e9..4fdf6a86731 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp @@ -941,8 +941,6 @@ void SUnit::dumpAll(const SelectionDAG *G) const { cerr << " # preds left : " << NumPredsLeft << "\n"; cerr << " # succs left : " << NumSuccsLeft << "\n"; - cerr << " # chain preds left : " << NumChainPredsLeft << "\n"; - cerr << " # chain succs left : " << NumChainSuccsLeft << "\n"; cerr << " Latency : " << Latency << "\n"; cerr << " Depth : " << Depth << "\n"; cerr << " Height : " << Height << "\n"; diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp index 33d7910507a..369b05c5e9c 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp @@ -116,15 +116,12 @@ void ScheduleDAGList::Schedule() { /// ReleaseSucc - Decrement the NumPredsLeft count of a successor. Add it to /// the PendingQueue if the count reaches zero. void ScheduleDAGList::ReleaseSucc(SUnit *SuccSU, bool isChain) { - if (!isChain) - SuccSU->NumPredsLeft--; - else - SuccSU->NumChainPredsLeft--; + SuccSU->NumPredsLeft--; - assert(SuccSU->NumPredsLeft >= 0 && SuccSU->NumChainPredsLeft >= 0 && + assert(SuccSU->NumPredsLeft >= 0 && "List scheduling internal error"); - if ((SuccSU->NumPredsLeft + SuccSU->NumChainPredsLeft) == 0) { + if (SuccSU->NumPredsLeft == 0) { // Compute how many cycles it will be before this actually becomes // available. This is the max of the start time of all predecessors plus // their latencies. @@ -276,7 +273,7 @@ void ScheduleDAGList::ListScheduleTopDown() { // Verify that all SUnits were scheduled. bool AnyNotSched = false; for (unsigned i = 0, e = SUnits.size(); i != e; ++i) { - if (SUnits[i].NumPredsLeft != 0 || SUnits[i].NumChainPredsLeft != 0) { + if (SUnits[i].NumPredsLeft != 0) { if (!AnyNotSched) cerr << "*** List scheduling failed! ***\n"; SUnits[i].dump(&DAG); diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp index 0b218abd4ab..db5ee24e3e3 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp @@ -202,13 +202,10 @@ void ScheduleDAGRRList::ReleasePred(SUnit *PredSU, bool isChain, // interrupt model (drain vs. freeze). PredSU->CycleBound = std::max(PredSU->CycleBound, CurCycle + PredSU->Latency); - if (!isChain) - --PredSU->NumSuccsLeft; - else - --PredSU->NumChainSuccsLeft; + --PredSU->NumSuccsLeft; #ifndef NDEBUG - if (PredSU->NumSuccsLeft < 0 || PredSU->NumChainSuccsLeft < 0) { + if (PredSU->NumSuccsLeft < 0) { cerr << "*** List scheduling failed! ***\n"; PredSU->dump(&DAG); cerr << " has been released too many times!\n"; @@ -216,7 +213,7 @@ void ScheduleDAGRRList::ReleasePred(SUnit *PredSU, bool isChain, } #endif - if ((PredSU->NumSuccsLeft + PredSU->NumChainSuccsLeft) == 0) { + if (PredSU->NumSuccsLeft == 0) { // EntryToken has to go last! Special case it here. if (!PredSU->Node || PredSU->Node->getOpcode() != ISD::EntryToken) { PredSU->isAvailable = true; @@ -287,10 +284,7 @@ void ScheduleDAGRRList::CapturePred(SUnit *PredSU, SUnit *SU, bool isChain) { AvailableQueue->remove(PredSU); } - if (!isChain) - ++PredSU->NumSuccsLeft; - else - ++PredSU->NumChainSuccsLeft; + ++PredSU->NumSuccsLeft; } /// UnscheduleNodeBottomUp - Remove the node from the schedule, update its and @@ -713,7 +707,7 @@ void ScheduleDAGRRList::ListScheduleBottomUp() { // Verify that all SUnits were scheduled. bool AnyNotSched = false; for (unsigned i = 0, e = SUnits.size(); i != e; ++i) { - if (SUnits[i].NumSuccsLeft != 0 || SUnits[i].NumChainSuccsLeft != 0) { + if (SUnits[i].NumSuccsLeft != 0) { if (!AnyNotSched) cerr << "*** List scheduling failed! ***\n"; SUnits[i].dump(&DAG); @@ -739,13 +733,10 @@ void ScheduleDAGRRList::ReleaseSucc(SUnit *SuccSU, bool isChain, // interrupt model (drain vs. freeze). SuccSU->CycleBound = std::max(SuccSU->CycleBound, CurCycle + SuccSU->Latency); - if (!isChain) - --SuccSU->NumPredsLeft; - else - --SuccSU->NumChainPredsLeft; + --SuccSU->NumPredsLeft; #ifndef NDEBUG - if (SuccSU->NumPredsLeft < 0 || SuccSU->NumChainPredsLeft < 0) { + if (SuccSU->NumPredsLeft < 0) { cerr << "*** List scheduling failed! ***\n"; SuccSU->dump(&DAG); cerr << " has been released too many times!\n"; @@ -753,7 +744,7 @@ void ScheduleDAGRRList::ReleaseSucc(SUnit *SuccSU, bool isChain, } #endif - if ((SuccSU->NumPredsLeft + SuccSU->NumChainPredsLeft) == 0) { + if (SuccSU->NumPredsLeft == 0) { SuccSU->isAvailable = true; AvailableQueue->push(SuccSU); } -- 2.34.1