mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-17 03:07:06 +00:00
Use hysteresis for local live range splitting as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130596 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4f5558e676
commit
66446c803a
@ -1225,13 +1225,13 @@ unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
||||
PrevSlot[SplitBefore].distance(Uses[SplitAfter]));
|
||||
// Would this split be possible to allocate?
|
||||
// Never allocate all gaps, we wouldn't be making progress.
|
||||
float Diff = EstWeight - MaxGap;
|
||||
DEBUG(dbgs() << " w=" << EstWeight << " d=" << Diff);
|
||||
if (Diff > 0) {
|
||||
DEBUG(dbgs() << " w=" << EstWeight);
|
||||
if (EstWeight * Hysteresis >= MaxGap) {
|
||||
Shrink = false;
|
||||
float Diff = EstWeight - MaxGap;
|
||||
if (Diff > BestDiff) {
|
||||
DEBUG(dbgs() << " (best)");
|
||||
BestDiff = Diff;
|
||||
BestDiff = Hysteresis * Diff;
|
||||
BestBefore = SplitBefore;
|
||||
BestAfter = SplitAfter;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user