Be more conservative when forming compact regions.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 3 Aug 2011 23:09:38 +0000 (23:09 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 3 Aug 2011 23:09:38 +0000 (23:09 +0000)
commitb87f91b063a0ac853735f2af3bd94fb8551a11ff
tree68162dfb4436276c66c8ed6aa4b79c6f096ef67b
parent32668ea7a290ee1cb6bfe8cd677cdd4e5df05b4d
Be more conservative when forming compact regions.

Apply twice the negative bias on transparent blocks when computing the
compact regions. This excludes loop backedges from the region when only
one of the loop blocks uses the register.

Previously, we would include the backedge in the region if the loop
preheader and the loop latch both used the register, but the loop header
didn't.

When both the header and latch blocks use the register, we still keep it
live on the backedge.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136832 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocGreedy.cpp
lib/CodeGen/SpillPlacement.cpp
lib/CodeGen/SpillPlacement.h