llvm/lib
Geoff Berry 6b494b30f2 [AArch64] Extend AArch64RedundantCopyElimination to do simple copy propagation.
Summary:
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).

Reviewers: junbuml, mcrosier, t.p.northover, qcolombet, MatzeB

Subscribers: aemerson, rengolin, llvm-commits

Differential Revision: https://reviews.llvm.org/D30113

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295863 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-22 19:10:45 +00:00
..
Analysis [ModuleSummaryAnalysis] Don't crash when referencing unnamed globals. 2017-02-22 18:53:38 +00:00
AsmParser
Bitcode Move symbols from the global namespace into (anonymous) namespaces. NFC. 2017-02-11 11:06:55 +00:00
CodeGen [DAGCombiner] revert r295336 2017-02-22 16:27:33 +00:00
DebugInfo Don't assume little endian in StreamReader / StreamWriter. 2017-02-18 01:35:33 +00:00
Demangle
ExecutionEngine [Orc] Rename ObjectLinkingLayer -> RTDyldObjectLinkingLayer. 2017-02-20 05:45:14 +00:00
Fuzzer [libFuzzer] increase the size of FixedWord from 27 to 64, see PR31950 2017-02-14 23:02:37 +00:00
IR OptDiag: Add const to some interfaces that don't modify anything. NFC 2017-02-22 07:38:17 +00:00
IRReader
LibDriver
LineEditor
Linker
LTO [LTO] Add ability to emit assembly to new LTO API 2017-02-15 20:36:36 +00:00
MC [WebAssembly] Implement the wasm binary container header. 2017-02-22 18:50:20 +00:00
Object Fix -Wcovered-switch-default. 2017-02-22 01:01:45 +00:00
ObjectYAML Move symbols from the global namespace into (anonymous) namespaces. NFC. 2017-02-11 11:06:55 +00:00
Option
Passes Increases full-unroll threshold. 2017-02-18 03:46:51 +00:00
ProfileData Fix an obvious bug in SampleProfileReaderGCC. 2017-02-22 17:27:21 +00:00
Support [Support] Provide linux/magic.h fallback for older kernels 2017-02-22 18:09:15 +00:00
TableGen
Target [AArch64] Extend AArch64RedundantCopyElimination to do simple copy propagation. 2017-02-22 19:10:45 +00:00
Transforms [LoopVectorize] Added address space check when analysing interleaved accesses 2017-02-22 18:37:36 +00:00
XRay [XRAY] [x86_64] Adding a Flight Data filetype reader to the llvm-xray Trace implementation. 2017-02-17 01:47:16 +00:00
CMakeLists.txt
LLVMBuild.txt