[llvm-commits] [llvm] r49747 - /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

Dan Gohman gohman at apple.com
Tue Apr 15 15:40:14 PDT 2008


Author: djg
Date: Tue Apr 15 17:40:14 2008
New Revision: 49747

URL: http://llvm.org/viewvc/llvm-project?rev=49747&view=rev
Log:
Fix the new scheduler assertion checks to work when
the scheduler has inserted no-ops. This fixes
the 2006-07-03-schedulers.ll regression on ppc32.

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp?rev=49747&r1=49746&r2=49747&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp Tue Apr 15 17:40:14 2008
@@ -1076,6 +1076,7 @@
   // 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 @@
       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 @@
   // 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 @@
       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
 }





More information about the llvm-commits mailing list