diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-03-07 22:42:16 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-03-07 22:42:16 +0000 |
commit | 1973b3e2541f95c87e4acb7e134362ff306ec9ed (patch) | |
tree | 9b4ab014985a01f9cf6df6542caa96697f765819 | |
parent | be2119e8e2bc7006cfd638a24367acbfda625d16 (diff) |
Make the UselessRegs argument optional in the LiveRangeEdit constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127181 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/InlineSpiller.cpp | 2 | ||||
-rw-r--r-- | lib/CodeGen/LiveRangeEdit.cpp | 7 | ||||
-rw-r--r-- | lib/CodeGen/LiveRangeEdit.h | 6 | ||||
-rw-r--r-- | lib/CodeGen/RegAllocGreedy.cpp | 9 |
4 files changed, 11 insertions, 13 deletions
diff --git a/lib/CodeGen/InlineSpiller.cpp b/lib/CodeGen/InlineSpiller.cpp index 38e6c85902..34ae3ec2f3 100644 --- a/lib/CodeGen/InlineSpiller.cpp +++ b/lib/CodeGen/InlineSpiller.cpp @@ -333,7 +333,7 @@ void InlineSpiller::insertSpill(LiveInterval &NewLI, void InlineSpiller::spill(LiveInterval *li, SmallVectorImpl<LiveInterval*> &newIntervals, const SmallVectorImpl<LiveInterval*> &spillIs) { - LiveRangeEdit edit(*li, newIntervals, spillIs); + LiveRangeEdit edit(*li, newIntervals, &spillIs); spill(edit); if (VerifySpills) mf_.verify(&pass_, "After inline spill"); diff --git a/lib/CodeGen/LiveRangeEdit.cpp b/lib/CodeGen/LiveRangeEdit.cpp index 3bbda1c2e6..7de1284cb9 100644 --- a/lib/CodeGen/LiveRangeEdit.cpp +++ b/lib/CodeGen/LiveRangeEdit.cpp @@ -75,9 +75,10 @@ bool LiveRangeEdit::allUsesAvailableAt(const MachineInstr *OrigMI, if (MO.isDef()) return false; // We cannot depend on virtual registers in uselessRegs_. - for (unsigned ui = 0, ue = uselessRegs_.size(); ui != ue; ++ui) - if (uselessRegs_[ui]->reg == MO.getReg()) - return false; + if (uselessRegs_) + for (unsigned ui = 0, ue = uselessRegs_->size(); ui != ue; ++ui) + if ((*uselessRegs_)[ui]->reg == MO.getReg()) + return false; LiveInterval &li = lis.getInterval(MO.getReg()); const VNInfo *OVNI = li.getVNInfoAt(OrigIdx); diff --git a/lib/CodeGen/LiveRangeEdit.h b/lib/CodeGen/LiveRangeEdit.h index d5795cde57..9518130560 100644 --- a/lib/CodeGen/LiveRangeEdit.h +++ b/lib/CodeGen/LiveRangeEdit.h @@ -31,7 +31,7 @@ class VirtRegMap; class LiveRangeEdit { LiveInterval &parent_; SmallVectorImpl<LiveInterval*> &newRegs_; - const SmallVectorImpl<LiveInterval*> &uselessRegs_; + const SmallVectorImpl<LiveInterval*> *uselessRegs_; /// firstNew_ - Index of the first register added to newRegs_. const unsigned firstNew_; @@ -66,7 +66,7 @@ public: /// rematerializing values because they are about to be removed. LiveRangeEdit(LiveInterval &parent, SmallVectorImpl<LiveInterval*> &newRegs, - const SmallVectorImpl<LiveInterval*> &uselessRegs) + const SmallVectorImpl<LiveInterval*> *uselessRegs = 0) : parent_(parent), newRegs_(newRegs), uselessRegs_(uselessRegs), firstNew_(newRegs.size()), scannedRemattable_(false) {} @@ -87,7 +87,7 @@ public: /// anyRematerializable - Return true if any parent values may be /// rematerializable. - /// This function must be called before ny rematerialization is attempted. + /// This function must be called before any rematerialization is attempted. bool anyRematerializable(LiveIntervals&, const TargetInstrInfo&, AliasAnalysis*); diff --git a/lib/CodeGen/RegAllocGreedy.cpp b/lib/CodeGen/RegAllocGreedy.cpp index 642805e08a..917e64049c 100644 --- a/lib/CodeGen/RegAllocGreedy.cpp +++ b/lib/CodeGen/RegAllocGreedy.cpp @@ -601,8 +601,7 @@ void RAGreedy::splitAroundRegion(LiveInterval &VirtReg, unsigned PhysReg, SmallVector<IndexPair, 8> InterferenceRanges; mapGlobalInterference(PhysReg, InterferenceRanges); - SmallVector<LiveInterval*, 4> SpillRegs; - LiveRangeEdit LREdit(VirtReg, NewVRegs, SpillRegs); + LiveRangeEdit LREdit(VirtReg, NewVRegs); SE->reset(LREdit); // Create the main cross-block interval. @@ -1130,8 +1129,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order, << '-' << Uses[BestAfter] << ", " << BestDiff << ", " << (BestAfter - BestBefore + 1) << " instrs\n"); - SmallVector<LiveInterval*, 4> SpillRegs; - LiveRangeEdit LREdit(VirtReg, NewVRegs, SpillRegs); + LiveRangeEdit LREdit(VirtReg, NewVRegs); SE->reset(LREdit); SE->openIntv(); @@ -1183,8 +1181,7 @@ unsigned RAGreedy::trySplit(LiveInterval &VirtReg, AllocationOrder &Order, if (Stage < RS_Block) { SplitAnalysis::BlockPtrSet Blocks; if (SA->getMultiUseBlocks(Blocks)) { - SmallVector<LiveInterval*, 4> SpillRegs; - LiveRangeEdit LREdit(VirtReg, NewVRegs, SpillRegs); + LiveRangeEdit LREdit(VirtReg, NewVRegs); SE->reset(LREdit); SE->splitSingleBlocks(Blocks); setStage(NewVRegs.begin(), NewVRegs.end(), RS_Block); |