LLVM backend for 6502
Go to file
Chris Lattner 05e15f8897 Switch GVN and memdep to use PHITransAddr, which correctly handles
phi translation of complex expressions like &A[i+1].  This has the
following benefits:

1. The phi translation logic is all contained in its own class with
   a strong interface and verification that it is self consistent.

2. The logic is more correct than before.  Previously, if intermediate
   expressions got PHI translated, we'd miss the update and scan for
   the wrong pointers in predecessor blocks.  @phi_trans2 is a testcase
   for this.

3. We have a lot less code in memdep.

We can handle phi translation across blocks of things like @phi_trans3,
which is pretty insane :).

This patch should fix the miscompiles of 255.vortex, and I tested it 
with a bootstrap of llvm-gcc, llvm-test and dejagnu of course.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90926 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-09 01:59:31 +00:00
autoconf Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
bindings Expose the rest of the attribute settings. 2009-09-28 04:42:47 +00:00
cmake CheckAtomic.cmake: Put all C++ code inside CHECK_CXX_SOURCE_COMPILES. 2009-12-06 00:06:33 +00:00
docs Regenerate. 2009-12-07 18:26:24 +00:00
examples fix PR5649 by making fib use the JIT instead of the interpreter, patch by Perry Lorier! 2009-12-01 01:56:27 +00:00
include Switch GVN and memdep to use PHITransAddr, which correctly handles 2009-12-09 01:59:31 +00:00
lib Switch GVN and memdep to use PHITransAddr, which correctly handles 2009-12-09 01:59:31 +00:00
projects Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
runtime OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
test Switch GVN and memdep to use PHITransAddr, which correctly handles 2009-12-09 01:59:31 +00:00
tools when opt crashes, print its command line arguments as a pretty stack trace. 2009-12-09 00:41:28 +00:00
unittests Add an implementation of the delta debugging algorithm. 2009-12-03 11:12:42 +00:00
utils lit: Prevent crash-on-invalid (when run on directory which has no test suite). 2009-12-08 19:49:30 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
Xcode Remove the IA-64 backend. 2009-07-24 00:30:09 +00:00
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt Don't default warnings to ON on MSVC, the spew is enough to triple the build time. :/ 2009-12-01 19:11:36 +00:00
configure Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
CREDITS.TXT Add myself to the blame list. 2009-08-20 15:20:15 +00:00
LICENSE.TXT Add regular expression matching support, based on OpenBSD regexec()/regcomp() 2009-08-30 08:24:09 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile Add the rest of the build system logic for optional target disassemblers 2009-11-25 04:46:58 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
Makefile.rules Add the rest of the build system logic for optional target disassemblers 2009-11-25 04:46:58 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
README.txt First test commit 2009-10-05 22:29:11 +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.