[llvm-commits] CVS: llvm/lib/CodeGen/LiveIntervals.cpp

Alkis Evlogimenos alkis at cs.uiuc.edu
Fri Jan 16 10:08:07 PST 2004


Changes in directory llvm/lib/CodeGen:

LiveIntervals.cpp updated: 1.26 -> 1.27

---
Log message:

Use a list instead of a vector to store intervals. This will be needed
when we join intervals and one of the two will need to be removed.


---
Diffs of the changes:  (+6 -7)

Index: llvm/lib/CodeGen/LiveIntervals.cpp
diff -u llvm/lib/CodeGen/LiveIntervals.cpp:1.26 llvm/lib/CodeGen/LiveIntervals.cpp:1.27
--- llvm/lib/CodeGen/LiveIntervals.cpp:1.26	Wed Jan 14 04:44:29 2004
+++ llvm/lib/CodeGen/LiveIntervals.cpp	Fri Jan 16 10:06:59 2004
@@ -114,7 +114,7 @@
                 unsigned reg = mop.getAllocatedRegNum();
                 Reg2IntervalMap::iterator r2iit = r2iMap_.find(reg);
                 assert(r2iit != r2iMap_.end());
-                intervals_[r2iit->second].weight += pow(10.0F, loopDepth);
+                r2iit->second->weight += pow(10.0F, loopDepth);
             }
         }
     }
@@ -148,11 +148,11 @@
         // add new interval
         intervals_.push_back(Interval(reg));
         // update interval index for this register
-        r2iMap_[reg] = intervals_.size() - 1;
+        r2iMap_.insert(std::make_pair(reg, --intervals_.end()));
         interval = &intervals_.back();
     }
     else {
-        interval = &intervals_[r2iit->second];
+        interval = &*r2iit->second;
     }
 
     for (MbbIndex2MbbMap::iterator
@@ -241,15 +241,14 @@
 
     Reg2IntervalMap::iterator r2iit = r2iMap_.find(reg);
     if (r2iit != r2iMap_.end()) {
-        unsigned ii = r2iit->second;
-        Interval& interval = intervals_[ii];
+        Interval& interval = *r2iit->second;
         interval.addRange(start, end);
     }
     else {
         intervals_.push_back(Interval(reg));
         Interval& interval = intervals_.back();
         // update interval index for this register
-        r2iMap_[reg] = intervals_.size() - 1;
+        r2iMap_.insert(std::make_pair(reg, --intervals_.end()));
         interval.addRange(start, end);
     }
 }
@@ -318,7 +317,7 @@
         }
     }
 
-    std::sort(intervals_.begin(), intervals_.end(), StartPointComp());
+    intervals_.sort(StartPointComp());
     DEBUG(std::copy(intervals_.begin(), intervals_.end(),
                     std::ostream_iterator<Interval>(std::cerr, "\n")));
 }





More information about the llvm-commits mailing list