llvm-project/llvm
Chris Lattner 49beaf40fc Turn any_extend nodes into zero_extend nodes when it allows us to remove an
and instruction.  This allows us to compile stuff like this:

bool %X(int %X) {
        %Y = add int %X, 14
        %Z = setne int %Y, 12345
        ret bool %Z
}

to this:

_X:
        cmpl $12331, 4(%esp)
        setne %al
        movzbl %al, %eax
        ret

instead of this:

_X:
        cmpl $12331, 4(%esp)
        setne %al
        movzbl %al, %eax
        andl $1, %eax
        ret

This occurs quite a bit with the X86 backend.  For example, 25 times in
lambda, 30 times in 177.mesa, 14 times in galgel,  70 times in fma3d,
25 times in vpr, several hundred times in gcc, ~45 times in crafty,
~60 times in parser, ~140 times in eon, 110 times in perlbmk, 55 on gap,
16 times on bzip2, 14 times on twolf, and 1-2 times in many other SPEC2K
programs.

llvm-svn: 25901
2006-02-02 07:17:31 +00:00
..
Xcode Catch up on some of the file addition/deletions. 2006-01-27 13:24:20 +00:00
autoconf don't need this any more; the "#define hashes to trees" hack is coming 2006-01-23 06:47:56 +00:00
docs Remove FAKE_SOURCES 2006-01-27 22:06:01 +00:00
examples When a function takes a variable number of pointer arguments, with a zero 2005-10-23 04:37:20 +00:00
include/llvm add an instance var and argument. 2006-02-02 00:23:12 +00:00
lib Turn any_extend nodes into zero_extend nodes when it allows us to remove an 2006-02-02 07:17:31 +00:00
projects Fixed Makefile so it does, indeed, build a dynamic library. 2006-01-06 22:51:19 +00:00
runtime fix make install/uninstall of libcrtend. 2006-01-30 02:03:56 +00:00
test new testcase 2006-02-02 06:35:38 +00:00
tools Pass plugins on to children when optimizing. 2006-01-26 18:37:21 +00:00
utils add a note, ya knoe 2006-02-01 19:12:23 +00:00
win32 Add _CRT_SECURE_NO_DEPRECATE preprocessor symbol to make VS2005 happy. 2006-01-30 04:07:08 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
CREDITS.TXT Add an entry 2006-01-08 08:25:38 +00:00
LICENSE.TXT Happy New Year, LLVM. 2006-01-03 14:42:06 +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 Implement fix for PR471: 2005-12-21 03:31:53 +00:00
Makefile.rules * Eliminate FAKE_SOURCES 2006-01-27 22:13:12 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +00:00
configure Update for including additional function tests. 2006-01-23 08:15:53 +00:00
llvm.spec Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +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.