LLVM backend for 6502
Go to file
Joel Jones 9df72a93ef Fix a problem with incomplete equality testing of PHINodes in
Instruction::IsIdenticalToWhenDefined.

This manifested itself when inlining two calls to the same function.  The 
inlined function had a switch statement that returned one of a set of 
global variables.  Without this modification, the two phi instructions that 
chose values from the branches of the switch instruction inlined from the 
callee were considered equivalent and jump-threading replaced a load for the 
first switch value with a phi selecting from the second switch, thereby 
producing incorrect code.

This patch has been tested with "make check-all", "lnt runteste nt", and 
llvm self-hosted, and on the original program that had this problem, 
wireshark.

<rdar://problem/11025519>



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156548 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-10 15:59:41 +00:00
autoconf Revert r156393, "[tests] Remove some remaining DejaGNU related cruft.", this 2012-05-08 18:26:07 +00:00
bindings
cmake Adding -fcolor-diagnostics is causing problem to users that parse the build 2012-05-08 18:11:06 +00:00
docs change the objectsize intrinsic signature: add a 3rd parameter to denote the maximum runtime performance penalty that the user is willing to accept. 2012-05-09 15:52:43 +00:00
examples
include Add Triple::getiOSVersion. 2012-05-09 17:23:48 +00:00
lib Fix a problem with incomplete equality testing of PHINodes in 2012-05-10 15:59:41 +00:00
projects
runtime
test Fix a problem with incomplete equality testing of PHINodes in 2012-05-10 15:59:41 +00:00
tools Do not install llvm-config-host for cross-builds of clang. rdar://11317847 2012-05-09 00:07:02 +00:00
unittests Add unittests for Triple::getMacOSXVersion and Triple::getiOSVersion. 2012-05-09 19:31:41 +00:00
utils Fix TableGen's RegPressureSet weight normalization to handle subreg DAGS. 2012-05-10 00:32:15 +00:00
.gitignore
CMakeLists.txt Make it possible to switch off solution folders. VS Express does not support 2012-05-09 15:10:54 +00:00
configure Revert r156393, "[tests] Remove some remaining DejaGNU related cruft.", this 2012-05-08 18:26:07 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile Do not install llvm-config-host for cross-builds of clang. rdar://11317847 2012-05-09 00:07:02 +00:00
Makefile.common
Makefile.config.in Make IntelJITEvents and OProfileJIT as optional libraries and add 2012-05-07 19:38:40 +00:00
Makefile.rules Make IntelJITEvents and OProfileJIT as optional libraries and add 2012-05-07 19:38:40 +00:00
README.txt

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.