[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