LLVM backend for 6502
Go to file
Chris Lattner 50af16a97b Simplify handling of shifts to be the same as we do for adds. Add support
for (X * C1) + (X * C2) (where * can be mul or shl), allowing us to fold:

   Y+Y+Y+Y+Y+Y+Y+Y

into
         %tmp.8 = shl long %Y, ubyte 3           ; <long> [#uses=1]

instead of

        %tmp.4 = shl long %Y, ubyte 2           ; <long> [#uses=1]
        %tmp.12 = shl long %Y, ubyte 2          ; <long> [#uses=1]
        %tmp.8 = add long %tmp.4, %tmp.12               ; <long> [#uses=1]

This implements add.ll:test25

Also add support for (X*C1)-(X*C2) -> X*(C1-C2), implementing sub.ll:test18


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17704 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-13 19:50:12 +00:00
autoconf Add the RUNTEST autoconf onfiguration variable for Deja-gnu support. This 2004-11-07 23:29:39 +00:00
docs Document the new llvm-ranlib command. 2004-11-12 00:18:35 +00:00
examples Clean up code layout, delete extra blank line, say fibonacci' instead of foo' 2004-11-05 04:11:40 +00:00
include/llvm Add support for shifts 2004-11-13 19:32:45 +00:00
lib Simplify handling of shifts to be the same as we do for adds. Add support 2004-11-13 19:50:12 +00:00
projects Change macro names per naming standard in Makefile.rules. 2004-10-30 09:26:22 +00:00
runtime Internalize variable names to prevent recursive assignment. Cleanup docs. 2004-10-30 09:19:36 +00:00
test New testcase 2004-11-13 19:49:39 +00:00
tools Make sure llee can deal with compressed bytecode too. 2004-11-09 20:21:25 +00:00
utils * Add support for f2c and the -f2c switch to enable Fortran benchmarks 2004-11-08 03:28:27 +00:00
win32 This file is gone 2004-11-08 18:46:09 +00:00
.cvsignore
configure Add the RUNTEST autoconf onfiguration variable for Deja-gnu support. This 2004-11-07 23:29:39 +00:00
CREDITS.TXT Give sumant credit too! 2004-10-27 15:54:23 +00:00
LICENSE.TXT Adjust the license files based on the actual content of llvm and llvm-test 2004-09-16 16:41:31 +00:00
llvm.spec
llvm.spec.in
Makefile Move path override in test/Makefile. 2004-11-08 05:44:05 +00:00
Makefile.common No really, this is LLVM! 2004-10-30 00:57:52 +00:00
Makefile.config.in Add the RUNTEST autoconf onfiguration variable for Deja-gnu support. This 2004-11-07 23:29:39 +00:00
Makefile.rules * Clean up all the shared library output on uninstall 2004-11-12 02:27:36 +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.