Fix overly conservative spill interval computation.
llvm-svn: 11574
This commit is contained in:
parent
26583db8b6
commit
739e5e33d7
|
@ -191,10 +191,9 @@ void LiveIntervals::updateSpilledInterval(Interval& li)
|
||||||
if (mop.isRegister()) {
|
if (mop.isRegister()) {
|
||||||
unsigned reg = mop.getReg();
|
unsigned reg = mop.getReg();
|
||||||
if (rep(reg) == li.reg) {
|
if (rep(reg) == li.reg) {
|
||||||
if (mop.isUse())
|
unsigned start = mop.isUse() ? index : index+1;
|
||||||
li.addRange(index, index+2);
|
unsigned end = mop.isDef() ? index+2 : index+1;
|
||||||
else
|
li.addRange(start, end);
|
||||||
li.addRange(index+1, index+2);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue