Enable improved spilling costs by default. This speeds up viterbi on x86

by 40%, FreeBench/fourinarow by 20%, and many other programs 10-25%.

On PPC, this speeds up fourinarow by 18%, and probably other things as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31504 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-11-07 18:04:58 +00:00
parent b9cac27f7d
commit 393ebae0ef

View File

@ -59,9 +59,6 @@ namespace {
EnableJoining("join-liveintervals",
cl::desc("Coallesce copies (default=true)"),
cl::init(true));
static cl::opt<bool>
EnableReweight("enable-majik-f00");
}
void LiveIntervals::getAnalysisUsage(AnalysisUsage &AU) const {
@ -221,16 +218,14 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {
if (isZeroLengthInterval(&LI))
LI.weight = HUGE_VALF;
if (EnableReweight) {
// Divide the weight of the interval by its size. This encourages
// spilling of intervals that are large and have few uses, and
// discourages spilling of small intervals with many uses.
unsigned Size = 0;
for (LiveInterval::iterator II = LI.begin(), E = LI.end(); II != E;++II)
Size += II->end - II->start;
// Divide the weight of the interval by its size. This encourages
// spilling of intervals that are large and have few uses, and
// discourages spilling of small intervals with many uses.
unsigned Size = 0;
for (LiveInterval::iterator II = LI.begin(), E = LI.end(); II != E;++II)
Size += II->end - II->start;
LI.weight /= Size;
}
LI.weight /= Size;
}
}