llvm-project/llvm
James Molloy 3d21dcf3ed [SimplifyCFG] Don't create unnecessary PHIs
In conditional store merging, we were creating PHIs when we didn't
need to. If the value to be predicated isn't defined in the block
we're predicating, then it doesn't need a PHI at all (because we only
deal with triangles and diamonds, any value not in the predicated BB
must dominate the predicated BB).

This fixes a large code size increase in some benchmarks in a popular embedded benchmark suite.

Now with a fix (and fixed tests) for the conformance issue seen in Chromium.

llvm-svn: 255767
2015-12-16 14:12:44 +00:00
..
autoconf [OPENMP] Make -fopenmp to turn on OpenMP support by default. 2015-12-10 05:45:58 +00:00
bindings Fix `llvm-config` to adapt to the install environment. 2015-11-09 23:15:38 +00:00
cmake [CMake] Add LLVM_BUILD_INSTRUMENTED option to enable building with -fprofile-instr-generate 2015-12-10 21:19:07 +00:00
docs [IR] Add support for floating pointer atomic loads and stores 2015-12-16 00:49:36 +00:00
examples [Orc] Fix Kaleidoscope example for change in r254693. 2015-12-04 02:32:32 +00:00
include [SectionMemoryManager] Make better use of virtual memory 2015-12-16 11:13:23 +00:00
lib [SimplifyCFG] Don't create unnecessary PHIs 2015-12-16 14:12:44 +00:00
projects [CMake] Disable adding the test suite as a projects subdirectory 2015-10-28 18:36:56 +00:00
resources
test [SimplifyCFG] Don't create unnecessary PHIs 2015-12-16 14:12:44 +00:00
tools [sancov] blacklist support. 2015-12-16 00:31:48 +00:00
unittests [llvm-profdata] Add support for weighted merge of profile data (2nd try) 2015-12-15 17:37:09 +00:00
utils [X86] Part 2 to fix x86-64 fp128 calling convention. 2015-12-14 22:08:36 +00:00
.arcconfig
.clang-format
.clang-tidy adding readability-identifier-naming to llvm clang-tidy configuration. 2015-12-08 17:44:51 +00:00
.gitignore
CMakeLists.txt [CMake] Add option LLVM_EXTERNALIZE_DEBUGINFO 2015-12-03 18:45:39 +00:00
CODE_OWNERS.TXT Friendly takeover of the Hexagon backend 2015-12-03 17:07:12 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Create Makefile variables for 'share' and 'libexec' 2015-11-09 16:10:00 +00:00
README.txt Revert previous test commit. 2015-12-11 07:40:25 +00:00
configure [OPENMP] Make -fopenmp to turn on OpenMP support by default. 2015-12-10 05:45:58 +00:00
llvm.spec.in

README.txt

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.