LLVM backend for 6502
Go to file
Chris Lattner a16b7cb1d3 Two changes:
1) codegen a shift of a register as a shift, not an LEA.
2) teach the RA to convert a shift to an LEA instruction if it wants something
   in three-address form.

This gives us asm diffs like:

-       leal (,%eax,4), %eax
+       shll $2, %eax

which is faster on some processors and smaller on all of them.

and, more interestingly:

-       movl 24(%esi), %eax
-       leal (,%eax,4), %edi
+       movl 24(%esi), %edi
+       shll $2, %edi

Without #2, #1 was a significant pessimization in some cases.

This implements CodeGen/X86/shift-codegen.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35204 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-20 06:08:29 +00:00
autoconf Add possibility to set memory limit for binaries run via libSystem. This 2007-02-16 19:11:07 +00:00
docs Document LoopPass. 2007-03-19 22:21:25 +00:00
examples Revert last patch. The examples build now. 2007-03-06 17:26:14 +00:00
include Correct the name: isStrictPositive --> isStrictlyPositive. 2007-03-20 02:18:16 +00:00
lib Two changes: 2007-03-20 06:08:29 +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 These functions should use shll, not lea. 2007-03-20 06:01:41 +00:00
tools Regenerate. 2007-03-15 03:26:42 +00:00
utils Recognize target instruction flag 'isReMaterializable'. 2007-03-19 06:20:37 +00:00
win32 Unbreak VC++ build. 2007-03-05 00:00:42 +00:00
Xcode
.cvsignore
configure Regenerate for getrlimit/setrlimit. 2007-02-16 19:17:20 +00:00
CREDITS.TXT Credit self for Ada front-end. 2007-03-05 09:21:11 +00:00
LICENSE.TXT remove these. 2007-02-25 02:28:21 +00:00
llvm.spec.in
Makefile revert r1.68. This breaks 'make install' without doing 'make' first, but 2007-02-21 06:23:20 +00:00
Makefile.common
Makefile.config.in
Makefile.rules correct dependency 2007-02-28 05:10:40 +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.