LLVM backend for 6502
Go to file
Chris Lattner 2bb6f41282 Don't bother sign/zext_inreg'ing the result of an and operation if we know
the result does change as a result of the extend.

This improves codegen for Alpha on this testcase:

int %a(ushort* %i) {
        %tmp.1 = load ushort* %i
        %tmp.2 = cast ushort %tmp.1 to int
        %tmp.4 = and int %tmp.2, 1
        ret int %tmp.4
}

Generating:

a:
        ldgp $29, 0($27)
        ldwu $0,0($16)
        and $0,1,$0
        ret $31,($26),1

instead of:

a:
        ldgp $29, 0($27)
        ldwu $0,0($16)
        and $0,1,$0
        addl $0,0,$0
        ret $31,($26),1

btw, alpha really should switch to livein/outs for args :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21213 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-10 23:37:16 +00:00
autoconf Recognize an IA64 when we see one 2005-03-17 20:56:22 +00:00
docs * Put command-line switches and function names in <tt> 2005-03-30 19:14:24 +00:00
examples add missing copyright header 2005-03-15 15:46:23 +00:00
include/llvm * store immediate values as int64_t, not int. come on, we should be happy 2005-04-10 09:18:55 +00:00
lib Don't bother sign/zext_inreg'ing the result of an and operation if we know 2005-04-10 23:37:16 +00:00
projects Rename createPromoteMemoryToRegister() to 2005-03-28 02:01:12 +00:00
runtime Fix grammar 2005-03-23 21:14:33 +00:00
test fix this testcase so the regex doesn't match the function name 2005-04-10 20:45:35 +00:00
tools The first argument to ExecuteAndWait should be the program name, but pointed 2005-04-10 20:59:38 +00:00
utils spiff up the nightly tester output one more notch 2005-03-17 16:07:45 +00:00
win32 Do #include HashExtras.h with VC++ 2005-03-16 05:49:58 +00:00
.cvsignore
configure Recognize an IA64 when we see one 2005-03-17 20:56:22 +00:00
CREDITS.TXT Updating my entry. 2005-03-22 21:33:19 +00:00
LICENSE.TXT
llvm.spec
llvm.spec.in
Makefile
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in For PR528: 2005-02-24 03:56:32 +00:00
Makefile.rules * Remove extraneous spaces 2005-03-11 04:15:18 +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.