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)
commitd74d2847573df690b6a91254688ef3fd974f83f7
treef793c5feb12ffc47c6b14a91936ff52d6d7b0630
parentdbb4e57a3c7fb18d5ff2d9504c5cacb5df20fab4
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>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157354 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocGreedy.cpp
test/CodeGen/Thumb2/inflate-regs.ll [new file with mode: 0644]