Fixed node deletion bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20207 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
index 15dc5b3..985743d 100644
--- a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
+++ b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
@@ -77,6 +77,8 @@
Statistic<> MSLoops("modulosched-schedLoops", "Number of loops successfully modulo-scheduled");
Statistic<> IncreasedII("modulosched-increasedII", "Number of times we had to increase II");
Statistic<> SingleBBLoops("modulosched-singeBBLoops", "Number of single basic block loops");
+ Statistic<> NoSched("modulosched-noSched", "No schedule");
+ Statistic<> SameStage("modulosched-sameStage", "Max stage is 0");
template<>
struct DOTGraphTraits<MSchedGraph*> : public DefaultDOTGraphTraits {
@@ -252,9 +254,13 @@
++MSLoops;
Changed = true;
}
- else
+ else {
+ if(!haveSched)
+ ++NoSched;
+ else
+ ++SameStage;
DEBUG(std::cerr << "Max stage is 0, so no change in loop or reached cap\n");
-
+ }
//Clear out our maps for the next basic block that is processed
nodeToAttributesMap.clear();
partialOrder.clear();