Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Evan Cheng d99d68bcee Fix two-address pass's aggressive instruction commuting heuristics. It's meant
to catch cases like:
 %reg1024<def> = MOV r1
 %reg1025<def> = MOV r0
 %reg1026<def> = ADD %reg1024, %reg1025
 r0            = MOV %reg1026

By commuting ADD, it let coalescer eliminate all of the copies. However, there
was a bug in the heuristics where it ended up commuting the ADD in:

 %reg1024<def> = MOV r0
 %reg1025<def> = MOV 0
 %reg1026<def> = ADD %reg1024, %reg1025
 r0            = MOV %reg1026

That did no benefit but rather ensure the last MOV would not be coalesced.

rdar://11355268


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156048 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-03 01:45:13 +00:00
autoconf fix typo 2012-04-30 20:06:58 +00:00
bindings [python] Add negative MemoryBuffer testcase 2012-03-22 11:23:52 +00:00
cmake [CMake] Restructure how Clang, Polly and other external projects get included. 2012-04-26 19:43:35 +00:00
docs [docs] Include the Kaleidescope tutorial in the Sphinx docs build. 2012-05-02 22:46:36 +00:00
examples Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
include Added TargetRegisterInfo::getAllocatableClass. 2012-05-03 01:14:37 +00:00
lib Fix two-address pass's aggressive instruction commuting heuristics. It's meant 2012-05-03 01:45:13 +00:00
projects Update config.sub in the sample project. 2012-04-27 10:27:32 +00:00
runtime Switch to c-style comments in a C file. 2012-04-27 19:30:29 +00:00
test Fix two-address pass's aggressive instruction commuting heuristics. It's meant 2012-05-03 01:45:13 +00:00
tools Fix unintentional use of operator bool. 2012-05-02 05:39:10 +00:00
unittests SmallVector: Don't rely on having an assignment operator around in push_back for POD-like types. 2012-04-29 10:53:29 +00:00
utils Move llvm-tblgen's StringMatcher into the TableGen library so it can 2012-05-02 17:32:48 +00:00
.gitignore Add tools/lld to .gitignore. 2012-05-02 21:25:32 +00:00
CMakeLists.txt CMake: Prune redundant LLVM_COMPILER_JOBS from llvm/CMakeLists.txt. HandleLLVMOptions.cmake has it. 2012-04-21 14:50:56 +00:00
configure fix typo 2012-04-30 20:06:58 +00:00
CREDITS.TXT Update the documentation of CellSPU, in case it gets removed in 3.1. 2012-04-29 20:00:55 +00:00
LICENSE.TXT Add YAML parser to Support. 2012-04-03 23:09:22 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile When cross compiling, install a host version of llvm-config. <rdar://11187889> 2012-04-19 23:19:55 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Add profiling support for Intel Parallel Amplifier XE (VTune) for JITted code in LLVM. 2012-03-13 08:33:15 +00:00
Makefile.rules Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
README.txt test commit 2012-03-20 13:12:38 +00:00

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

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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 HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.