summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/tools
diff options
context:
space:
mode:
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2018-10-15 08:36:03 +0000
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2018-10-15 08:36:03 +0000
commit064944352e6433e24cd2fd55148583d43a99904b (patch)
tree7dcae47f960c5718031c7954019cb0c43a282565 /llvm/unittests/tools
parentb44b22c6fe19db5ef8515f84028c75f1187b7708 (diff)
downloadbcm5719-llvm-064944352e6433e24cd2fd55148583d43a99904b.tar.gz
bcm5719-llvm-064944352e6433e24cd2fd55148583d43a99904b.zip
[TwoAddressInstructionPass] Replace subregister uses when processing tied operands
Summary: TwoAddressInstruction pass typically rewrites %1:short = foo %0.sub_lo:long as %1:short = COPY %0.sub_lo:long %1:short = foo %1:short when having tied operands. If there are extra un-tied operands that uses the same reg and subreg, such as the second and third inputs to fie here: %1:short = fie %0.sub_lo:long, %0.sub_hi:long, %0.sub_lo:long then there was a bug which replaced the register %0 also for the un-tied operand, but without changing the subregister indices. So we used to get: %1:short = COPY %0.sub_lo:long %1:short = fie %1, %1.sub_hi:short, %1.sub_lo:short With this fix we instead get: %1:short = COPY %0.sub_lo:long %1:short = fie %1, %0.sub_hi:long, %1 Reviewers: arsenm, JesperAntonsson, kparzysz, MatzeB Reviewed By: MatzeB Subscribers: bjope, kparzysz, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D36224 llvm-svn: 344492
Diffstat (limited to 'llvm/unittests/tools')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud