aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2014-08-29 23:48:03 +0000
committerJuergen Ributzka <juergen@apple.com>2014-08-29 23:48:03 +0000
commit00d78221abd6c97b70e6db4b0d7b5d7d727283e9 (patch)
tree6870b4a5c6568c197865ff2af68528f017cbd376 /llvm/lib/Object/MachOObjectFile.cpp
parent2321920b61335cc834fea8f13d5006eb1e84ab1f (diff)
downloadllvm-00d78221abd6c97b70e6db4b0d7b5d7d727283e9.zip
llvm-00d78221abd6c97b70e6db4b0d7b5d7d727283e9.tar.gz
llvm-00d78221abd6c97b70e6db4b0d7b5d7d727283e9.tar.bz2
[MachineSinking] Clear kill flag of all operands at all their uses.
When sinking an instruction it might be moved past the original last use of one of its operands. This last use has the kill flag set and the verifier will obviously complain about this. Before Machine Sinking (AArch64): %vreg3<def> = ASRVXr %vreg1, %vreg2<kill> %XZR<def> = SUBSXrs %vreg4, %vreg1<kill>, 160, %NZCV<imp-def> ... After Machine Sinking: %XZR<def> = SUBSXrs %vreg4, %vreg1<kill>, 160, %NZCV<imp-def> ... %vreg3<def> = ASRVXr %vreg1, %vreg2<kill> This fix clears all the kill flags in all instruction that use the same operands as the instruction that is being sunk. This fixes rdar://problem/18180996. llvm-svn: 216803
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions