[PATCH] D29344: [AArch64] Extend redundant copy elimination pass to handle non-zero stores.
Chad Rosier via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 31 12:53:18 PST 2017
mcrosier created this revision.
Herald added subscribers: rengolin, aemerson.
This patch extends the current functionality of the AArch64 redundant copy elimination pass to handle non-zero cases such as:
BB#0:
cmp x0, #1
b.eq .LBB0_1
.LBB0_1:
orr x0, xzr, #0x1 ; <-- redundant copy; x0 known to hold #1.
This removes redundant copies from most of the SPEC200X tests. When running on Kryo, I saw a 2.7% and 1% improvement in spec2000/gap and spec2006/povray, respectively. All other testing was within noise.
Chad
https://reviews.llvm.org/D29344
Files:
lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
test/CodeGen/AArch64/machine-copy-remove.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29344.86479.patch
Type: text/x-patch
Size: 11212 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170131/c621f867/attachment.bin>
More information about the llvm-commits
mailing list