LLVM backend for 6502
Go to file
Chris Lattner ecfe55e65b When possible, custom lower 32-bit SINT_TO_FP to this:
_foo2:
        extsw r2, r3
        std r2, -8(r1)
        lfd f0, -8(r1)
        fcfid f0, f0
        frsp f1, f0
        blr

instead of this:

_foo2:
        lis r2, ha16(LCPI2_0)
        lis r4, 17200
        xoris r3, r3, 32768
        stw r3, -4(r1)
        stw r4, -8(r1)
        lfs f0, lo16(LCPI2_0)(r2)
        lfd f1, -8(r1)
        fsub f0, f1, f0
        frsp f1, f0
        blr

This speeds up Misc/pi from 2.44s->2.09s with LLC and from 3.01->2.18s
with llcbeta (16.7% and 38.1% respectively).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26943 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-22 05:30:33 +00:00
autoconf Use -emit-llvm -S to get .ll file output from llvm-gcc 2006-02-27 05:39:00 +00:00
docs Document ENABLE_ASSERTIONS=1 2006-03-21 01:10:57 +00:00
examples Upgrade this to use the new intrinsic names 2006-03-03 01:31:12 +00:00
include/llvm add some nodes for extractelement 2006-03-21 20:43:08 +00:00
lib When possible, custom lower 32-bit SINT_TO_FP to this: 2006-03-22 05:30:33 +00:00
projects Convert over to the new way of handling lex/bison checked into cvs 2006-02-15 07:26:07 +00:00
runtime Optimizing to calloc() to malloc() + memset() can be bad on some platforms. 2006-03-13 21:22:43 +00:00
test Add an integer splat test 2006-03-21 18:27:27 +00:00
tools The library dependency file in flat format. This file is generated by the 2006-03-19 22:12:30 +00:00
utils Don't forget to promote xform function to an explicit node for def : Pat<> 2006-03-21 20:44:17 +00:00
win32 Put intrinsics.gen in its proper place. 2006-03-10 04:36:01 +00:00
Xcode Catch up on some of the file addition/deletions. 2006-01-27 13:24:20 +00:00
.cvsignore
configure Use -emit-llvm -S to get .ll file output from llvm-gcc 2006-02-27 05:39:00 +00:00
CREDITS.TXT Add an entry 2006-01-08 08:25:38 +00:00
LICENSE.TXT
llvm.spec
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Enable assertions to be enabled in release builds by building with 2006-03-21 01:06:41 +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.