mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Sorting is now handled by both linearscan and iterative scan so live
intervals need not be sorted anymore. Removing this redundant step improves LiveIntervals running time by 5% on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15106 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
82c24fba8a
commit
d3014edc51
@ -159,7 +159,6 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {
|
||||
}
|
||||
}
|
||||
|
||||
intervals_.sort();
|
||||
DEBUG(std::cerr << "********** INTERVALS **********\n");
|
||||
DEBUG(std::copy(intervals_.begin(), intervals_.end(),
|
||||
std::ostream_iterator<LiveInterval>(std::cerr, "\n")));
|
||||
@ -263,15 +262,6 @@ std::vector<LiveInterval*> LiveIntervals::addIntervalsForSpills(
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: This method MUST return intervals in sorted order. If a
|
||||
// particular machine instruction both uses and defines the vreg being
|
||||
// spilled (e.g., vr = vr + 1) and if the def is processed before the
|
||||
// use, the list ends up not sorted.
|
||||
//
|
||||
// The proper way to fix this is to process all uses of the vreg before we
|
||||
// process any defs. However, this would require refactoring the above
|
||||
// blob of code, which I'm not feeling up to right now.
|
||||
std::sort(added.begin(), added.end(), less_ptr<LiveInterval>());
|
||||
return added;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user