aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/LiveIntervalAnalysis.h2
-rw-r--r--lib/CodeGen/LiveIntervalAnalysis.cpp2
-rw-r--r--lib/CodeGen/RegAllocLinearScan.cpp3
3 files changed, 4 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/LiveIntervalAnalysis.h b/include/llvm/CodeGen/LiveIntervalAnalysis.h
index c9f9d2dcc2..6f41ab664c 100644
--- a/include/llvm/CodeGen/LiveIntervalAnalysis.h
+++ b/include/llvm/CodeGen/LiveIntervalAnalysis.h
@@ -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
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp
index 3aec772f1a..ca6c04d8f7 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/lib/CodeGen/LiveIntervalAnalysis.cpp
@@ -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);
diff --git a/lib/CodeGen/RegAllocLinearScan.cpp b/lib/CodeGen/RegAllocLinearScan.cpp
index e74f3333d2..8a9eb3de0b 100644
--- a/lib/CodeGen/RegAllocLinearScan.cpp
+++ b/lib/CodeGen/RegAllocLinearScan.cpp
@@ -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();
}
}
}