Fix the new scheduler assertion checks to work when
authorDan Gohman <gohman@apple.com>
Tue, 15 Apr 2008 22:40:14 +0000 (22:40 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 15 Apr 2008 22:40:14 +0000 (22:40 +0000)
the scheduler has inserted no-ops. This fixes
the 2006-07-03-schedulers.ll regression on ppc32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49747 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

index ab492f40bc2e10f2288efbafe795a23cb2faadf9..a08fc05c93eaeaa299730520cb25fead1a0edd77 100644 (file)
@@ -1076,6 +1076,7 @@ void ScheduleDAGRRList::ListScheduleBottomUp() {
   // Verify that all SUnits were scheduled.
   bool AnyNotSched = false;
   unsigned DeadNodes = 0;
+  unsigned Noops = 0;
   for (unsigned i = 0, e = SUnits.size(); i != e; ++i) {
     if (!SUnits[i].isScheduled) {
       if (SUnits[i].NumPreds == 0 && SUnits[i].NumSuccs == 0) {
@@ -1096,8 +1097,11 @@ void ScheduleDAGRRList::ListScheduleBottomUp() {
       AnyNotSched = true;
     }
   }
+  for (unsigned i = 0, e = Sequence.size(); i != e; ++i)
+    if (!Sequence[i])
+      ++Noops;
   assert(!AnyNotSched);
-  assert(Sequence.size() + DeadNodes == SUnits.size() &&
+  assert(Sequence.size() + DeadNodes - Noops == SUnits.size() &&
          "The number of nodes scheduled doesn't match the expected number!");
 #endif
 }
@@ -1193,6 +1197,7 @@ void ScheduleDAGRRList::ListScheduleTopDown() {
   // Verify that all SUnits were scheduled.
   bool AnyNotSched = false;
   unsigned DeadNodes = 0;
+  unsigned Noops = 0;
   for (unsigned i = 0, e = SUnits.size(); i != e; ++i) {
     if (!SUnits[i].isScheduled) {
       if (SUnits[i].NumPreds == 0 && SUnits[i].NumSuccs == 0) {
@@ -1213,8 +1218,11 @@ void ScheduleDAGRRList::ListScheduleTopDown() {
       AnyNotSched = true;
     }
   }
+  for (unsigned i = 0, e = Sequence.size(); i != e; ++i)
+    if (!Sequence[i])
+      ++Noops;
   assert(!AnyNotSched);
-  assert(Sequence.size() + DeadNodes == SUnits.size() &&
+  assert(Sequence.size() + DeadNodes - Noops == SUnits.size() &&
          "The number of nodes scheduled doesn't match the expected number!");
 #endif
 }