Split around single instructions to enable register class inflation.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 5 Aug 2011 22:20:45 +0000 (22:20 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 5 Aug 2011 22:20:45 +0000 (22:20 +0000)
commit2d6d86be84ee355223ccd20b7f87a0c9971c50c9
tree444ace3252917e51cfbe061f6d7f2699ebdf65a6
parent0d6fac36eda6b65f0e396b24c5bce582f89f7992
Split around single instructions to enable register class inflation.

Normally, we don't create a live range for a single instruction in a
basic block, the spiller does that anyway. However, when splitting a
live range that belongs to a proper register sub-class, inserting these
extra COPY instructions completely remove the constraints from the
remainder interval, and it may be allocated from the larger super-class.

The spiller will mop up these small live ranges if we end up spilling
anyway. It calls them snippets.

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