[PATCH] D30113: [AArch64] Extend AArch64RedundantCopyElimination to do simple copy propagation.

Geoff Berry via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 17 14:32:01 PST 2017


gberry created this revision.
Herald added subscribers: rengolin, aemerson.

Extend AArch64RedundantCopyElimination to catch cases where the register
that is known to be zero is COPY'd in the predecessor block.  Before
this change, this pass would catch cases like:

      CBZW %W0, <BB#1>
  BB#1:
      %W0 = COPY %WZR // removed

After this change, cases like the one below are also caught:

      %W0 = COPY %W1
      CBZW %W1, <BB#1>
  BB#1:
      %W0 = COPY %WZR // removed

This change results in a 4% increase in static copies removed by this
pass when compiling the llvm test-suite.  It also fixes regressions
caused by doing post-RA copy propagation (a separate change to be put up
for review shortly).


https://reviews.llvm.org/D30113

Files:
  lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
  test/CodeGen/AArch64/machine-copy-remove.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30113.88942.patch
Type: text/x-patch
Size: 12993 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170217/0034c8e6/attachment.bin>


More information about the llvm-commits mailing list