LLVM backend for 6502
Go to file
Chris Lattner 895c4ab564 Fold (x << c1)>> c2 into a single shift if the bits shifted out aren't used.
This compiles:
int baz(long long a) { return (short)(((int)(a >>24)) >> 9); }

into:
_baz:
        srwi r2, r3, 1
        extsh r3, r2
        blr

on PPC, instead of:
_baz:
        slwi r2, r3, 8
        srwi r2, r2, 9
        extsh r3, r2
        blr

GCC produces:
_baz:
        srwi r10,r4,24
        insrwi r10,r3,24,0
        srawi r9,r3,24
        srawi r3,r10,9
        extsh r3,r3
        blr

This implements CodeGen/PowerPC/shl_elim.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36221 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-17 21:14:16 +00:00
autoconf Hack the shared library extension for dylib. The existing code just looks 2007-04-11 00:33:43 +00:00
docs Remove "ModulePasses requiring FunctionPasses" from the list of future 2007-04-17 00:17:11 +00:00
examples Revert last patch. The examples build now. 2007-03-06 17:26:14 +00:00
include Copy coalescing change to prevent a physical register from being pin to a 2007-04-17 20:32:26 +00:00
lib Fold (x << c1)>> c2 into a single shift if the bits shifted out aren't used. 2007-04-17 21:14:16 +00:00
projects avoid collision with /usr/bin/sample if this ever gets installed. 2007-02-18 03:03:41 +00:00
runtime crtend is only for llvm-gcc3, remove it. 2007-02-23 19:34:09 +00:00
test new testcase 2007-04-17 21:12:26 +00:00
tools Regenerate. 2007-04-16 03:05:01 +00:00
utils For PR1328: 2007-04-16 06:54:34 +00:00
win32 Track new header file. 2007-04-08 21:19:52 +00:00
Xcode Update project 2007-01-29 18:45:08 +00:00
.cvsignore Add llvm.spec, a generated file. 2006-10-18 19:23:56 +00:00
configure Hopefully fix LTDL_SHLIB_EXT on Darwin 2007-04-11 00:27:39 +00:00
CREDITS.TXT Add Roman to credits 2007-03-21 21:45:25 +00:00
LICENSE.TXT remove these. 2007-02-25 02:28:21 +00:00
llvm.spec.in Minor technical correction in documentation. 2006-08-21 01:58:57 +00:00
Makefile Echo command lines only if the user wants them. 2007-04-15 06:22:48 +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 For PR789: 2007-03-29 19:05:44 +00:00
Makefile.rules Removed tabs everywhere except autogenerated & external files. Add make 2007-04-16 18:10:23 +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.