LLVM backend for 6502
Go to file
Owen Anderson b0ba0f4170 LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to.
Splitting critical edges at the merge point only addressed part of the issue; it is also possible for non-post-domination
to occur when the path from the load to the merge has branches in it.  Unfortunately, full anticipation analysis is
time-consuming, so for now approximate it.  This is strictly more conservative than real anticipation, so we will miss
some cases that real PRE would allow, but we also no longer insert loads into paths where they didn't exist before. :-)

This is a very slight net positive on SPEC for me (0.5% on average).  Most of the benchmarks are largely unaffected, but
when it pays off it pays off decently: 181.mcf improves by 4.5% on my machine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114785 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-25 05:26:18 +00:00
autoconf Attempt to support platforms which don't have fenv.h. 2010-09-17 20:06:27 +00:00
bindings Remove the Ada bindings which are unmaintained and unused. The project which 2010-09-15 08:17:10 +00:00
cmake CMake: Don't include tools, unittets, or examples as available targets 2010-09-24 19:10:51 +00:00
docs remove an obsolete section 2010-09-23 22:34:49 +00:00
examples Removed TracingBrainF from examples Makefile. 2010-09-15 14:55:32 +00:00
include Remove SlotIndex::PHI_BIT. It is no longer used by anything. 2010-09-25 00:45:18 +00:00
lib LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to. 2010-09-25 05:26:18 +00:00
projects projects: Don't try to build libcxx if one happens to have it checked out into 2010-09-09 15:49:32 +00:00
runtime Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'. 2010-09-03 15:42:45 +00:00
test LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to. 2010-09-25 05:26:18 +00:00
tools MC/Lexer: Add 'Real' token type for floating point literals. 2010-09-24 01:59:31 +00:00
unittests CMake: Don't include tools, unittets, or examples as available targets 2010-09-24 19:10:51 +00:00
utils Get rid of pop_macro warnings on MSVC. 2010-09-24 19:48:47 +00:00
website
build-for-llvm-top.sh
CMakeLists.txt CMake: Don't include tools, unittets, or examples as available targets 2010-09-24 19:10:51 +00:00
configure Regenerate. 2010-09-17 20:08:35 +00:00
CREDITS.TXT Flesh out the list of things I've worked on. 2010-08-29 04:22:35 +00:00
LICENSE.TXT
llvm.spec.in
Makefile llvmc: remove dynamic plugins. 2010-08-15 07:07:12 +00:00
Makefile.common
Makefile.config.in Make the makefiles go much faster by using the realpath 2010-08-03 22:53:22 +00:00
Makefile.rules build: Add support for a TOOL_ORDER_FILE variable so commands can build with an 2010-09-16 00:42:32 +00:00
ModuleInfo.txt
README.txt (Hopefully) One last test. 2010-07-27 00:04:55 +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.