Fix bug introduced by previous commit: check if fixed intervals
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Tue, 13 Jan 2004 20:37:01 +0000 (20:37 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Tue, 13 Jan 2004 20:37:01 +0000 (20:37 +0000)
overlap before adding their spill weight.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10819 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocLinearScan.cpp

index 1116edd39a541d49467fc07c6b80381e9e33a486..616c438f556ddd3afc7b92fa05fe36bf2cc2348a 100644 (file)
@@ -547,6 +547,9 @@ void RA::assignStackSlotAtInterval(IntervalPtrs::value_type cur)
     // for each fixed interval that overlaps
     for (IntervalPtrs::const_iterator i = fixed_.begin(), e = fixed_.end();
          i != e; ++i) {
+         if (!cur->overlaps(**i))
+             continue;
+
         assert((*i)->reg < MRegisterInfo::FirstVirtualRegister &&
                "virtual register interval in fixed set?");
         updateWeight(regWeight, (*i)->reg, (*i)->weight);