Add command line option to limit the number splits to help debugging.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58312 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/PreAllocSplitting.cpp b/lib/CodeGen/PreAllocSplitting.cpp
index 5c1c223..b6efe06 100644
--- a/lib/CodeGen/PreAllocSplitting.cpp
+++ b/lib/CodeGen/PreAllocSplitting.cpp
@@ -33,7 +33,9 @@
 #include <map>
 using namespace llvm;
 
-STATISTIC(NumSplit     , "Number of intervals split");
+static cl::opt<int> PreSplitLimit("pre-split-limit", cl::init(-1), cl::Hidden);
+
+STATISTIC(NumSplits, "Number of intervals split");
 
 namespace {
   class VISIBILITY_HIDDEN PreAllocSplitting : public MachineFunctionPass {
@@ -607,7 +609,7 @@
     // Record val# values are in the specific spill slot.
     RecordSplit(CurrLI->reg, SpillIndex, RestoreIndex, SS);
 
-    ++NumSplit;
+    ++NumSplits;
     return true;
   }
 
@@ -659,7 +661,7 @@
   // Record val# values are in the specific spill slot.
   RecordSplit(CurrLI->reg, SpillIndex, RestoreIndex, SS);
 
-  ++NumSplit;
+  ++NumSplits;
   return true;
 }
 
@@ -689,6 +691,8 @@
   // Process the affected live intervals.
   bool Change = false;
   while (!Intervals.empty()) {
+    if (PreSplitLimit != -1 && (int)NumSplits == PreSplitLimit)
+      break;
     LiveInterval *LI = Intervals.back();
     Intervals.pop_back();
     Change |= SplitRegLiveInterval(LI);