Don't use MRI liveouts in R600.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 5 Feb 2013 17:53:52 +0000 (17:53 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 5 Feb 2013 17:53:52 +0000 (17:53 +0000)
commita499d2bcef0c1001c60d752d356e50eed2402ca8
tree3a2648c3432c807a11fb4069696aad92d5ae3277
parent0a9d1d31e9b3239b1dc38a67d31810c4bb405d0a
Don't use MRI liveouts in R600.

Something very strange is going on with the output registers in this
target. Its ISelLowering code is inserting dangling CopyToReg nodes,
hoping that those physregs won't get clobbered before the RETURN.

This patch adds the output registers as implicit uses on RETURN
instructions in the custom emission pass. I'd much prefer to have those
CopyToReg nodes glued to the RETURNs, but I don't see how.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174400 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/R600ISelLowering.cpp
lib/Target/R600/R600Instructions.td
lib/Target/R600/R600MachineFunctionInfo.h