OSDN Git Service

Apply Chris' suggestions.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 17 Oct 2007 06:53:44 +0000 (06:53 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 17 Oct 2007 06:53:44 +0000 (06:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43069 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/LiveIntervalAnalysis.h
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/RegAllocLinearScan.cpp

index c9f9d2d..6f41ab6 100644 (file)
@@ -167,7 +167,7 @@ namespace llvm {
     /// is live in any MBB returns true as well as the list of basic blocks
     /// where the value is live in.
     bool findLiveInMBBs(const LiveRange &LR,
-                        SmallVector<MachineBasicBlock*, 4> &MBBs) const;
+                        SmallVectorImpl<MachineBasicBlock*> &MBBs) const;
 
     // Interval creation
 
index 3aec772..ca6c04d 100644 (file)
@@ -817,7 +817,7 @@ void LiveIntervals::computeIntervals() {
 }
 
 bool LiveIntervals::findLiveInMBBs(const LiveRange &LR,
-                               SmallVector<MachineBasicBlock*, 4> &MBBs) const {
+                              SmallVectorImpl<MachineBasicBlock*> &MBBs) const {
   std::vector<IdxMBBPair>::const_iterator I =
     std::lower_bound(Idx2MBBMap.begin(), Idx2MBBMap.end(), LR.start);
 
index e74f333..8a9eb3d 100644 (file)
@@ -290,6 +290,7 @@ void RALinScan::linearScan()
 
   // Add live-ins to every BB except for entry.
   MachineFunction::iterator EntryMBB = mf_->begin();
+  SmallVector<MachineBasicBlock*, 8> LiveInMBBs;
   for (LiveIntervals::iterator i = li_->begin(), e = li_->end(); i != e; ++i) {
     const LiveInterval &cur = i->second;
     unsigned Reg = 0;
@@ -302,11 +303,11 @@ void RALinScan::linearScan()
     for (LiveInterval::Ranges::const_iterator I = cur.begin(), E = cur.end();
          I != E; ++I) {
       const LiveRange &LR = *I;
-      SmallVector<MachineBasicBlock*, 4> LiveInMBBs;
       if (li_->findLiveInMBBs(LR, LiveInMBBs)) {
         for (unsigned i = 0, e = LiveInMBBs.size(); i != e; ++i)
           if (LiveInMBBs[i] != EntryMBB)
             LiveInMBBs[i]->addLiveIn(Reg);
+        LiveInMBBs.clear();
       }
     }
   }