Simplify local live range splitting's safeguard to fix PR10070.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 6 Jun 2011 23:55:20 +0000 (23:55 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 6 Jun 2011 23:55:20 +0000 (23:55 +0000)
commitb3e705f88987608d4eb49668dac0e235d04df884
tree61f4dd9496275c125bbc6d4e76a4449cd074d3b8
parentf99a4b82a4ff0383138ccaf9e22511eb786168fb
Simplify local live range splitting's safeguard to fix PR10070.

When local live range splitting creates a live range with the same
number of instructions as the old range, mark it as RS_Local. When such
a range is seen again, require that it be split in a way that reduces
the number of instructions. That guarantees we are making progress while
still being able to perform 3 -> 2+3 splits as required by PR10070.

This also means that the PrevSlot map is no longer needed. This was also
used to estimate new spill weights, but that is no longer necessary
after slotIndexes::insertMachineInstrInMaps() got the extra Late
insertion argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132697 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocGreedy.cpp
test/CodeGen/X86/sse_reload_fold.ll