LLVM backend for 6502
Go to file
Chris Lattner 9c2328e5a9 implement InstCombine/and-compare.ll:test1. This compiles:
typedef struct { unsigned prefix : 4; unsigned code : 4; unsigned unsigned_p : 4; } tree_common;
int foo(tree_common *a, tree_common *b) { return a->code == b->code; }

into:

_foo:
        movl 4(%esp), %eax
        movl 8(%esp), %ecx
        movl (%eax), %eax
        xorl (%ecx), %eax
        # TRUNCATE movb %al, %al
        shrb $4, %al
        testb %al, %al
        sete %al
        movzbl %al, %eax
        ret

instead of:

_foo:
        movl 8(%esp), %eax
        movb (%eax), %al
        shrb $4, %al
        movl 4(%esp), %ecx
        movb (%ecx), %cl
        shrb $4, %cl
        cmpb %al, %cl
        sete %al
        movzbl %al, %eax
        ret

saving one cycle by eliminating a shift.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31727 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 06:06:06 +00:00
autoconf Bumping version number 2006-11-07 05:31:00 +00:00
docs Add a link to the GEP FAQ. 2006-11-13 08:03:59 +00:00
examples For PR950: 2006-10-20 07:07:24 +00:00
include/llvm A shim over other AA impls to catch incorrect uses 2006-11-14 05:21:04 +00:00
lib implement InstCombine/and-compare.ll:test1. This compiles: 2006-11-14 06:06:06 +00:00
projects For PR950: 2006-11-08 06:47:33 +00:00
runtime Remove unused variable. 2006-11-03 01:58:30 +00:00
test new testcase 2006-11-14 06:04:35 +00:00
tools Minor style fixes from review. 2006-11-11 19:59:25 +00:00
utils Add some output so the user is informed while they wait. 2006-11-13 16:08:51 +00:00
win32 Remove obsolete VS project. 2006-11-05 19:38:20 +00:00
Xcode Try again. 2006-11-05 21:21:20 +00:00
.cvsignore Add llvm.spec, a generated file. 2006-10-18 19:23:56 +00:00
configure Updating configure script for 2.0 2006-11-14 00:59:52 +00:00
CREDITS.TXT The list is sorted by name. 2006-08-29 01:42:47 +00:00
LICENSE.TXT burg is gone 2006-09-11 17:28:11 +00:00
llvm.spec.in Minor technical correction in documentation. 2006-08-21 01:58:57 +00:00
Makefile Document build order dependencies. Make sure that llvm-config is built before 2006-09-04 04:27:07 +00:00
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in Get LLVMGCCARCH right regardless of the llvm-gcc version being used. 2006-11-05 20:10:16 +00:00
Makefile.rules Allow ENABLE_OPTIMIZED=0 to turn off optimization (turn on debug). 2006-11-11 00:00:31 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +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.