Add support for inactive intervals. This effectively reuses registers
for live ranges that fall into assigned registers' holes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10566 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/LiveIntervalAnalysis.h b/lib/CodeGen/LiveIntervalAnalysis.h
index 1257e15..7ef2e78 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.h
+++ b/lib/CodeGen/LiveIntervalAnalysis.h
@@ -38,12 +38,10 @@
             typedef std::pair<unsigned, unsigned> Range;
             typedef std::vector<Range> Ranges;
             unsigned reg;   // the register of this interval
+            unsigned weight; // weight of this interval (number of uses)
             Ranges ranges; // the ranges this register is valid
 
-            Interval(unsigned r)
-                : reg(r) {
-
-            }
+            Interval(unsigned r);
 
             unsigned start() const {
                 assert(!ranges.empty() && "empty interval for register");
@@ -59,6 +57,10 @@
                 return end() <= index;
             }
 
+            bool liveAt(unsigned index) const;
+
+            bool overlaps(const Interval& other) const;
+
             void addRange(unsigned start, unsigned end);
 
         private: