aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp')
-rw-r--r--lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
index 15dc5b32ce..985743d8e8 100644
--- a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
+++ b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
@@ -77,6 +77,8 @@ namespace llvm {
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 @@ bool ModuloSchedulingPass::runOnFunction(Function &F) {
++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();