Undo spill weight tweak. Need to investigate the performance regressions.
[oota-llvm.git] / lib / CodeGen / LiveIntervalAnalysis.cpp
index f265e639786c13569ca13674655540bdc5fc00db..83df4d174a4cb0b0b5129fd8fa0dac2c1085a577 100644 (file)
@@ -44,8 +44,6 @@ static cl::opt<bool> SplitAtBB("split-intervals-at-bb",
                                cl::init(true), cl::Hidden);
 static cl::opt<int> SplitLimit("split-limit",
                                cl::init(-1), cl::Hidden);
-static cl::opt<bool> EmptyBBIndex("empty-bb-index",
-                                  cl::init(false), cl::Hidden);
 
 STATISTIC(numIntervals, "Number of original intervals");
 STATISTIC(numIntervalsAfter, "Number of intervals after coalescing");
@@ -102,23 +100,15 @@ void LiveIntervals::computeNumbering() {
       i2miMap_.push_back(I);
       MIIndex += InstrSlots::NUM;
     }
-
-    // Set the MBB2IdxMap entry for this MBB.
-    if (!EmptyBBIndex) {
-      MBB2IdxMap[MBB->getNumber()] = (StartIdx == MIIndex)
-        ? std::make_pair(StartIdx, StartIdx)  // Empty MBB
-        : std::make_pair(StartIdx, MIIndex - 1);
-      Idx2MBBMap.push_back(std::make_pair(StartIdx, MBB));
-    } else {
-      if (StartIdx == MIIndex) {
-        // Empty MBB
-        MIIndex += InstrSlots::NUM;
-        i2miMap_.push_back(0);
-      }
-      
-      MBB2IdxMap[MBB->getNumber()] = std::make_pair(StartIdx, MIIndex - 1);
-      Idx2MBBMap.push_back(std::make_pair(StartIdx, MBB));
+    
+    if (StartIdx == MIIndex) {
+      // Empty MBB
+      MIIndex += InstrSlots::NUM;
+      i2miMap_.push_back(0);
     }
+    // Set the MBB2IdxMap entry for this MBB.
+    MBB2IdxMap[MBB->getNumber()] = std::make_pair(StartIdx, MIIndex - 1);
+    Idx2MBBMap.push_back(std::make_pair(StartIdx, MBB));
   }
   std::sort(Idx2MBBMap.begin(), Idx2MBBMap.end(), Idx2MBBCompare());
   
@@ -375,14 +365,11 @@ void LiveIntervals::handleVirtualRegisterDef(MachineBasicBlock *mbb,
     // live interval.
     for (unsigned i = 0, e = vi.AliveBlocks.size(); i != e; ++i) {
       if (vi.AliveBlocks[i]) {
-        MachineBasicBlock *MBB = mf_->getBlockNumbered(i);
-        if (!MBB->empty()) {
-          LiveRange LR(getMBBStartIdx(i),
-                       getInstructionIndex(&MBB->back()) + InstrSlots::NUM,
-                       ValNo);
-          interval.addRange(LR);
-          DOUT << " +" << LR;
-        }
+        LiveRange LR(getMBBStartIdx(i),
+                     getMBBEndIdx(i)+1,  // MBB ends at -1.
+                     ValNo);
+        interval.addRange(LR);
+        DOUT << " +" << LR;
       }
     }
 
@@ -675,9 +662,7 @@ void LiveIntervals::computeIntervals() {
       MIIndex += InstrSlots::NUM;
     }
     
-    if (EmptyBBIndex) {
-      if (MBB->begin() == miEnd) MIIndex += InstrSlots::NUM; // Empty MBB
-    }
+    if (MBB->begin() == miEnd) MIIndex += InstrSlots::NUM; // Empty MBB
   }
 }