LLVM backend for 6502
Go to file
Chris Lattner e56d946a38 Fix the CBE's handling of instructions whose result is an i1. Previously,
we did not truncate the value down to i1 with (x&1).  This caused a problem
when the computation of x was nontrivial, for example, "add i1 1, 1" would 
return 2 instead of 0.

This makes the testcase compile into:

...
  llvm_cbe_t = (((llvm_cbe_r == 0u) + (llvm_cbe_r == 0u))&1);
  llvm_cbe_u = (((unsigned int )(bool )llvm_cbe_t));
...

instead of:

...
  llvm_cbe_t = ((llvm_cbe_r == 0u) + (llvm_cbe_r == 0u));
  llvm_cbe_u = (((unsigned int )(bool )llvm_cbe_t));
...

This fixes a miscompilation of mediabench/adpcm/rawdaudio/rawdaudio and
403.gcc with the CBE, regressions from LLVM 2.2. Tanya, please pull 
this into the release branch.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51813 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-31 09:23:55 +00:00
autoconf For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h" 2008-05-29 17:41:17 +00:00
bindings
docs IR, bitcode reader, bitcode writer, and asmparser changes to 2008-05-31 00:58:22 +00:00
examples API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) 2008-05-16 19:29:10 +00:00
include Factor several methods, including getInversePredicate and 2008-05-31 02:47:54 +00:00
lib Fix the CBE's handling of instructions whose result is an i1. Previously, 2008-05-31 09:23:55 +00:00
projects
runtime
test Fix the CBE's handling of instructions whose result is an i1. Previously, 2008-05-31 09:23:55 +00:00
tools Make all help strings start in upper case. 2008-05-30 21:14:10 +00:00
utils Teach the DAGISelEmitter to not compute the variable_ops operand 2008-05-31 02:11:25 +00:00
website
win32
Xcode
build-for-llvm-top.sh
configure Regenerate 2008-05-29 17:41:34 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h" 2008-05-29 17:41:17 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Revert 51775. 2008-05-30 22:47:19 +00:00
ModuleInfo.txt
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.