[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