LLVM backend for 6502
Go to file
Chris Lattner 1902ff4d82 This break is bogus and I have no idea why it was there. Basically it prevents
memoizing code when IV's are used by phinodes outside of loops.  In a simple
example, we were getting this code before (note that r6 and r7 are isomorphic
IV's):

        li r6, 0
        or r7, r6, r6
LBB_test_3:     ; no_exit
        lwz r2, 0(r3)
        cmpw cr0, r2, r5
        or r2, r7, r7
        beq cr0, LBB_test_5     ; loopexit
LBB_test_4:     ; endif
        addi r2, r7, 1
        addi r7, r7, 1
        addi r3, r3, 4
        addi r6, r6, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit

Now we get:

        li r6, 0
LBB_test_3:     ; no_exit
        or r2, r6, r6
        lwz r6, 0(r3)
        cmpw cr0, r6, r5
        beq cr0, LBB_test_6     ; loopexit
LBB_test_4:     ; endif
        addi r3, r3, 4
        addi r6, r2, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit

this was noticed in em3d.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23602 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-03 00:37:33 +00:00
autoconf
docs Update the discussion of TargetRegisterDesc 2005-09-30 17:46:55 +00:00
examples
include/llvm This member can be const too 2005-10-03 00:21:25 +00:00
lib This break is bogus and I have no idea why it was there. Basically it prevents 2005-10-03 00:37:33 +00:00
projects Implement PR614: 2005-08-27 18:50:39 +00:00
runtime
test more specific tests of subtarget stuff 2005-09-30 20:30:24 +00:00
tools Speed up isBytecodeLPath from 20s to .01s in common cases. This makes -native 2005-09-23 06:11:24 +00:00
utils put the right labels on the data 2005-10-02 21:51:38 +00:00
win32 Fix VC++ build errors. 2005-09-25 19:04:43 +00:00
Xcode Added targets to speed up build of llc. 2005-09-09 17:50:20 +00:00
.cvsignore
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec
llvm.spec.in
Makefile For PR614: 2005-08-25 04:59:49 +00:00
Makefile.common
Makefile.config.in
Makefile.rules allow for a target to ask for a dag isel 2005-09-03 01:15:25 +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.