When spilling an register, introduce a new temporary for each of its
spills. This allows for more flexibility when allocating registers for
spill code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13907 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/LiveIntervalAnalysis.h b/lib/CodeGen/LiveIntervalAnalysis.h
index ee28cf6..dda1637 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.h
+++ b/lib/CodeGen/LiveIntervalAnalysis.h
@@ -80,9 +80,9 @@
             }
         };
 
-        struct EndPointComp {
-            bool operator()(const Interval& lhs, const Interval& rhs) {
-                return lhs.ranges.back().second < rhs.ranges.back().second;
+        struct StartPointPtrComp {
+            bool operator()(const Interval* lhs, const Interval* rhs) {
+                return lhs->ranges.front().first < rhs->ranges.front().first;
             }
         };
 
@@ -164,7 +164,9 @@
 
         Intervals& getIntervals() { return intervals_; }
 
-        void updateSpilledInterval(Interval& i, VirtRegMap& vrm, int slot);
+        std::vector<Interval*> addIntervalsForSpills(const Interval& i,
+                                                     VirtRegMap& vrm,
+                                                     int slot);
 
     private:
         /// computeIntervals - compute live intervals