1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
Go to file
Geoff Berry 902f97ccb4 [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

llvm-svn: 295863
2017-02-22 19:10:45 +00:00
bindings Go binding: Add methods for missing PassManagerBuilder C APIs 2017-02-17 05:41:05 +00:00
cmake [Support] Provide linux/magic.h fallback for older kernels 2017-02-22 18:09:15 +00:00
docs AMDGPU : AMDGPU : Update AMDGPU Trap Handler ABI. 2017-02-21 18:48:01 +00:00
examples llvm/examples/Kaleidoscope/BuildingAJIT: More fixup corresponding to r295636. 2017-02-20 10:07:41 +00:00
include [WebAssembly] Implement the wasm binary container header. 2017-02-22 18:50:20 +00:00
lib [AArch64] Extend AArch64RedundantCopyElimination to do simple copy propagation. 2017-02-22 19:10:45 +00:00
projects [CMake] Correct configuration order of the sub-projects based on ther dependancies 2016-10-09 20:38:29 +00:00
resources In MSVC builds embed a VERSIONINFO resource in our exe and DLL files. 2015-06-12 15:58:29 +00:00
runtimes [CMake] Handle common options for runtimes build 2017-01-10 19:47:05 +00:00
test [AArch64] Extend AArch64RedundantCopyElimination to do simple copy propagation. 2017-02-22 19:10:45 +00:00
tools Don't modify archive members unless really needed. 2017-02-21 20:40:54 +00:00
unittests [Support] XFAIL is_local for mips 2017-02-22 14:34:45 +00:00
utils tablegen: Fix android build 2017-02-21 09:19:41 +00:00
.arcconfig project_id is from another era in phabricator land and does not provide any value. 2016-09-27 15:47:29 +00:00
.clang-format
.clang-tidy .clang-tidy: correct style name is 'camelBack' not 'lowerCase'. 2016-09-13 19:04:26 +00:00
.gitignore [AVR] Add the integrated testing tool to the .gitignore 2016-12-14 11:47:14 +00:00
CMakeLists.txt [Tablegen] Instrumenting table gen DAGGenISelDAG 2017-02-14 18:32:41 +00:00
CODE_OWNERS.TXT Collapse my two entries in CODE_OWNERS.txt 2017-02-15 23:45:21 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
CREDITS.TXT Revert r294228 2017-02-06 19:40:56 +00:00
LICENSE.TXT Bump year to 2017 in LICENSE.txt 2017-01-12 18:02:42 +00:00
llvm.spec.in [Sparc] Implement i64 load/store support for 32-bit sparc. 2015-08-10 19:11:39 +00:00
LLVMBuild.txt
README.txt Test commit: remove a blank line. 2017-02-03 10:56:57 +00:00
RELEASE_TESTERS.TXT Update the release tester for MIPS. NFC. 2017-01-17 11:00:28 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.