Add a last resort tryInstructionSplit() to RAGreedy.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 23 May 2012 22:37:27 +0000 (22:37 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 23 May 2012 22:37:27 +0000 (22:37 +0000)
commit0ce90494e6810a6eff2083335043350a364df6a1
tree282fa95aa1945437b42b4d6f7e14242de377dde2
parentf9ef60d2369f0798e8b939ce1798a7a4f0234b40
Add a last resort tryInstructionSplit() to RAGreedy.

Live ranges with a constrained register class may benefit from splitting
around individual uses. It allows the remaining live range to use a
larger register class where it may allocate. This is like spilling to a
different register class.

This is only attempted on constrained register classes.

<rdar://problem/11438902>

llvm-svn: 157354
llvm/lib/CodeGen/RegAllocGreedy.cpp
llvm/test/CodeGen/Thumb2/inflate-regs.ll [new file with mode: 0644]