Trim some unneeded fields.
authorEvan Cheng <evan.cheng@apple.com>
Fri, 28 Sep 2007 19:24:24 +0000 (19:24 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 28 Sep 2007 19:24:24 +0000 (19:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42442 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/ScheduleDAG.h
lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

index 9bf08345ae055c4963bfbe46b9116e160a369337..cb95c214dfbf663909d01f117150dfed8fc39cdc 100644 (file)
@@ -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;
index 6197b6fa0e9f76ec66ee4afd1838d25c7cb10985..4fdf6a8673111f688fc0d40e30ae668d721c6901 100644 (file)
@@ -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";
index 33d7910507adeb85790b9caa14efb85327432f44..369b05c5e9cb7211871a9c552b6a951165e90b51 100644 (file)
@@ -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);
index 0b218abd4ab3d08fb93133799b032db86d7afe7a..db5ee24e3e3a6a0b978e6ba8eca0ea675bd1b8b7 100644 (file)
@@ -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);
   }