LLVM backend for 6502
Go to file
Chris Lattner f768bba43f Allow the live interval analysis pass to be a bit more aggressive about
numbering values in live ranges for physical registers.

The alpha backend currently generates code that looks like this:

  vreg = preg
...
  preg = vreg
  use preg
...
  preg = vreg
  use preg

etc.  Because vreg contains the value of preg coming in, each of the
copies back into preg contain that initial value as well.

In the case of the Alpha, this allows this testcase:

void "foo"(int %blah) {
        store int 5, int *%MyVar
        store int 12, int* %MyVar2
        ret void
}

to compile to:

foo:
        ldgp $29, 0($27)
        ldiq $0,5
        stl $0,MyVar
        ldiq $0,12
        stl $0,MyVar2
        ret $31,($26),1

instead of:

foo:
        ldgp $29, 0($27)
        bis $29,$29,$0
        ldiq $1,5
        bis $0,$0,$29
        stl $1,MyVar
        ldiq $1,12
        bis $0,$0,$29
        stl $1,MyVar2
        ret $31,($26),1

This does not seem to have any noticable effect on X86 code.

This fixes PR535.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20536 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 23:05:19 +00:00
autoconf Add a call to AC_CONFIG_COMMANDS to ensure that llvm_src is set properly 2005-02-24 18:31:27 +00:00
docs Clarify inability to generate assembly, and note that VC++ Express works. 2005-03-08 03:56:50 +00:00
examples Use LLVMLIBS=JIT to get JIT libraries 2004-11-29 07:17:18 +00:00
include/llvm Allow the live interval analysis pass to be a bit more aggressive about 2005-03-09 23:05:19 +00:00
lib Allow the live interval analysis pass to be a bit more aggressive about 2005-03-09 23:05:19 +00:00
projects Update to reflect various changes in the autoconf directory. THe 2005-02-24 18:53:47 +00:00
runtime Hrm, who knows what 'uint' is, but it seems to work sometimes? Wierd. 2005-01-28 19:37:35 +00:00
test new testcase for a -basicaa bug that Alkis found with Java. 2005-03-09 16:29:22 +00:00
tools get bugpoint working on ia64, by building .so's with -fpic. :) 2005-03-09 03:31:02 +00:00
utils Include local time on the web page for start/end times. 2005-02-13 16:08:30 +00:00
win32 Somehow tablegen.exe got moved... fix up tablegen invocations to match. 2005-02-16 05:06:52 +00:00
.cvsignore Ignore the autom4te.cache directoy. 2004-12-24 15:11:23 +00:00
configure Adjust to changes needed to more easily support projects via the new 2005-02-24 19:05:19 +00:00
CREDITS.TXT New entry. 2005-02-19 17:14:24 +00:00
LICENSE.TXT Another year, another copyright update. 2005-01-08 19:10:44 +00:00
llvm.spec Updated for 1.3. 2004-08-16 15:17:40 +00:00
llvm.spec.in Updated for 1.3. 2004-08-16 15:17:40 +00:00
Makefile Remove the check target. Its now in Makefile.rules 2004-12-06 05:35:00 +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 PR528: 2005-02-24 03:56:32 +00:00
Makefile.rules Correct a typo in Makefile.rules. 2005-03-01 16:27:06 +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.