Clear spilled list at once. Remove unused vector.
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Wed, 21 Jul 2004 12:00:10 +0000 (12:00 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Wed, 21 Jul 2004 12:00:10 +0000 (12:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15073 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocIterativeScan.cpp

index 63fd358451f117d9a3c54c16f5e8edc7b8c03ad6..3f380aaf9de2719940281d8af6ead10368813e8f 100644 (file)
@@ -161,14 +161,14 @@ bool RA::runOnMachineFunction(MachineFunction &fn) {
         // the spill code and restart the algorithm
         std::set<unsigned> spilledRegs;
         for (IntervalPtrs::iterator
-                 i = spilled_.begin(); i != spilled_.end(); ) {
+                 i = spilled_.begin(); i != spilled_.end(); ++i) {
             int slot = vrm_->assignVirt2StackSlot((*i)->reg);
             std::vector<LiveInterval*> added =
                 li_->addIntervalsForSpills(**i, *vrm_, slot);
             std::copy(added.begin(), added.end(), std::back_inserter(handled_));
             spilledRegs.insert((*i)->reg);
-            i = spilled_.erase(i);
         }
+        spilled_.clear();
         for (IntervalPtrs::iterator
                  i = handled_.begin(); i != handled_.end(); )
             if (spilledRegs.count((*i)->reg))
@@ -415,7 +415,6 @@ void RA::assignRegOrSpillAtInterval(IntervalPtrs::value_type cur)
     // otherwise we spill all intervals aliasing the register with
     // minimum weight, assigned the newly cleared register to the
     // current interval and continue
-    std::vector<LiveInterval*> added;
     assert(MRegisterInfo::isPhysicalRegister(minReg) &&
            "did not choose a register to spill?");
     std::vector<bool> toSpill(mri_->getNumRegs(), false);