Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Chris Lattner 82e14db9a9 Add a hack to avoid some horrible code in some cases by always emitting
token chains first.  For this C function:

int test() {
  int i;
  for (i = 0; i < 100000; ++i)
    foo();
}

Instead of emitting this (condition before call)

.LBB_test_1:    ; no_exit
        addi r30, r30, 1
        lis r2, 1
        ori r2, r2, 34464
        cmpw cr2, r30, r2
        bl L_foo$stub
        bne cr2, .LBB_test_1    ; no_exit

Emit this:

.LBB_test_1:    ; no_exit
        bl L_foo$stub
        addi r30, r30, 1
        lis r2, 1
        ori r2, r2, 34464
        cmpw cr0, r30, r2
        bne cr0, .LBB_test_1    ; no_exit

Which makes it so we don't have to save/restore cr2 in the prolog/epilog of
the function.

This also makes the code much more similar to what the pattern isel produces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23135 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-29 23:21:29 +00:00
autoconf For PR619: 2005-08-24 10:43:10 +00:00
docs Changed unsigned long to unsigned. 2005-08-26 09:25:54 +00:00
examples For PR616: 2005-08-24 10:07:20 +00:00
include/llvm improve comment 2005-08-29 22:48:32 +00:00
lib Add a hack to avoid some horrible code in some cases by always emitting 2005-08-29 23:21:29 +00:00
projects Implement PR614: 2005-08-27 18:50:39 +00:00
runtime Remove trailing whitespace 2005-04-21 23:48:37 +00:00
test new testcase that crashes -reassociate 2005-08-24 17:54:56 +00:00
tools Allow bugpoint+PPC codegen to use fsqrt 2005-08-29 13:14:24 +00:00
utils Implement PR614: 2005-08-27 18:50:39 +00:00
win32 Update Visual Studio projects for removed file. 2005-08-19 13:51:22 +00:00
Xcode Remove Support/Search.h entry 2005-08-25 16:44:13 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure For PR616: 2005-08-24 10:07:20 +00:00
CREDITS.TXT Add a note, people are responsible for requesting that they be added to the 2005-08-02 22:10:21 +00:00
LICENSE.TXT Remove extraneous colons after program names for consistency 2005-05-12 21:39:01 +00:00
llvm.spec Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
llvm.spec.in Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
Makefile For PR614: 2005-08-25 04:59:49 +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 Two changes: 2005-04-22 17:14:14 +00:00
Makefile.rules Implement PR614: 2005-08-27 18:50:39 +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.