Prepare RAGreedy::growRegion for compact regions.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 23 Jul 2011 03:22:33 +0000 (03:22 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 23 Jul 2011 03:22:33 +0000 (03:22 +0000)
commitb4666364f4db4889883d7a6c02a177ebcde7c240
tree416f0b3c24f62057eea5af405304bfc91fd4020c
parente60f103d2d3541e57a6ca8d788e959e03b615e5f
Prepare RAGreedy::growRegion for compact regions.

A split candidate can have a null PhysReg which means that it doesn't
map to a real interference pattern. Instead, pretend that all through
blocks have interference.

This makes it possible to generate compact regions where the live range
doesn't go through blocks that don't use it. The live range will still
be live between directly connected blocks with uses.

Splitting around a compact region tends to produce a live range with a
high spill weight, so it may evict a less dense live range.

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