On some targets, non-move instructions can become move instructions because of coales...
authorEvan Cheng <evan.cheng@apple.com>
Fri, 12 Sep 2008 18:13:14 +0000 (18:13 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 12 Sep 2008 18:13:14 +0000 (18:13 +0000)
commitee9e1b0a855bfce7650899ae757f5ef96a19e95d
treee734d45946ef7af0be8881087f0cccdc83e51c06
parent4fbd796a1251a27e6590765a0a34876f436a0af9
On some targets, non-move instructions can become move instructions because of coalescing. e.g.
vr2 = OR vr0, vr1
=>
vr2 = OR vr1, vr1   // after coalescing vr0 with vr1

Update the value# of the destination register with the copy instruction if that happens.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56165 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SimpleRegisterCoalescing.cpp
test/CodeGen/PowerPC/2008-09-12-CoalescerBug.ll [new file with mode: 0644]