mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Revert r135121 which broke a gcc-4.2 builder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135122 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -854,6 +854,11 @@ void RAGreedy::splitAroundRegion(LiveInterval &VirtReg,
|
||||
});
|
||||
|
||||
InterferenceCache::Cursor &Intf = Cand.Intf;
|
||||
|
||||
// FIXME: We need cache reference counts to guarantee that Intf hasn't been
|
||||
// clobbered.
|
||||
Intf.setPhysReg(IntfCache, Cand.PhysReg);
|
||||
|
||||
LiveRangeEdit LREdit(VirtReg, NewVRegs, this);
|
||||
SE->reset(LREdit);
|
||||
|
||||
@ -1247,22 +1252,6 @@ unsigned RAGreedy::tryRegionSplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
||||
|
||||
Order.rewind();
|
||||
while (unsigned PhysReg = Order.next()) {
|
||||
// Discard bad candidates before we run out of interference cache cursors.
|
||||
// This will only affect register classes with a lot of registers (>32).
|
||||
if (NumCands == IntfCache.getMaxCursors()) {
|
||||
unsigned WorstCount = ~0u;
|
||||
unsigned Worst = 0;
|
||||
for (unsigned i = 0; i != NumCands; ++i) {
|
||||
if (i == BestCand)
|
||||
continue;
|
||||
unsigned Count = GlobalCand[i].LiveBundles.count();
|
||||
if (Count < WorstCount)
|
||||
Worst = i, WorstCount = Count;
|
||||
}
|
||||
--NumCands;
|
||||
GlobalCand[Worst] = GlobalCand[NumCands];
|
||||
}
|
||||
|
||||
if (GlobalCand.size() <= NumCands)
|
||||
GlobalCand.resize(NumCands+1);
|
||||
GlobalSplitCandidate &Cand = GlobalCand[NumCands];
|
||||
|
Reference in New Issue
Block a user