llvm-6502/lib
Chris Lattner 3603cd62ae 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25901 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-02 07:17:31 +00:00
..
Analysis Add explicit iostream #includes 2006-01-22 23:19:18 +00:00
Archive
AsmParser regenerate 2006-01-25 22:27:16 +00:00
Bytecode Fix auto-upgrade of intrinsics to work properly with both assembly and 2006-01-27 11:49:27 +00:00
CodeGen Turn any_extend nodes into zero_extend nodes when it allows us to remove an 2006-02-02 07:17:31 +00:00
Debugger
ExecutionEngine Allow the specification of explicit alignments for constant pool entries. 2006-01-31 22:23:14 +00:00
Linker Rename method 2006-01-24 04:14:29 +00:00
Support dynamically allocate plugin space as needed 2006-01-26 19:38:58 +00:00
System Add AddSymbol() method to DynamicLibrary to work around Windows limitation 2006-01-30 04:33:51 +00:00
Target implemented, testcase here: test/Regression/CodeGen/X86/compare-add.ll 2006-02-02 06:36:48 +00:00
Transforms Improve compatibility with VC2005, patch by Morten Ofstad! 2006-01-26 20:41:32 +00:00
VMCore validate matching constraints and remember when we see them. 2006-02-02 00:23:53 +00:00
Makefile