TwoAddrInstructionPass::tryInstructionTransform() has a case where it calls
authorCameron Zwarich <zwarich@apple.com>
Sun, 24 Feb 2013 00:27:26 +0000 (00:27 +0000)
committerCameron Zwarich <zwarich@apple.com>
Sun, 24 Feb 2013 00:27:26 +0000 (00:27 +0000)
commitf05c0cbb2098261cce0ec469486173bc6adee2e1
tree6444a72b9ca0b37b302ef6183fd9287774fac9e5
parentfead64be9b9f5d8700bd4705efcb36194fbbb147
TwoAddrInstructionPass::tryInstructionTransform() has a case where it calls
itself recursively with a new instruction that has not been finalized, in order
to determine whether to keep the instruction. On 'make check' and test-suite the
only cases where the recursive invocation made any transformations were simple
instruction commutations, so I am restricting the recursive invocation to do
only this.

The other cases wouldn't work correctly when updating LiveIntervals, since the
new instructions don't have slot indices and LiveIntervals hasn't yet been
updated. If the other transformations were actually triggering in any test case
it would be possible to support it with a lot of effort, but since they don't
it's not worth it.

llvm-svn: 175979
llvm/lib/CodeGen/TwoAddressInstructionPass.cpp