llvm-6502/lib
Chris Lattner b14ab8a10d Teach the dag combiner to turn a truncate/sign_extend pair into a sextinreg
when the types match up.  This allows the X86 backend to compile:

sbyte %toggle_value(sbyte* %tmp.1) {
        %tmp.2 = load sbyte* %tmp.1
        ret sbyte %tmp.2
}

to this:

_toggle_value:
        mov %EAX, DWORD PTR [%ESP + 4]
        movsx %EAX, BYTE PTR [%EAX]
        ret

instead of this:

_toggle_value:
        mov %EAX, DWORD PTR [%ESP + 4]
        movsx %EAX, BYTE PTR [%EAX]
        movsx %EAX, %AL
        ret

noticed in Shootout/objinst.

-Chris


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24630 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-07 07:11:03 +00:00
..
Analysis Collapsing node if variable length struct with final field of length zero 2005-12-06 18:04:30 +00:00
Archive Fix a problem with llvm-ranlib that (on some platforms) caused the archive 2005-11-30 05:21:10 +00:00
AsmParser regenerate 2005-11-12 18:22:38 +00:00
Bytecode Fix a problem with llvm-ranlib that (on some platforms) caused the archive 2005-11-30 05:21:10 +00:00
CodeGen Teach the dag combiner to turn a truncate/sign_extend pair into a sextinreg 2005-12-07 07:11:03 +00:00
Debugger tell selectiondag when we're debugging 2005-11-16 07:21:47 +00:00
ExecutionEngine Fix a nasty bug that was causing miscompilation of global variables 2005-10-23 23:54:56 +00:00
Linker Fix test/Regression/Linker/2005-12-06-AppendingZeroLengthArrays.ll and 2005-12-06 17:30:58 +00:00
Support indicate when a tool is a debug build. 2005-11-16 06:36:47 +00:00
System instead of using mstats, use malloc_zone_statistics which returns numbers 2005-11-14 07:27:56 +00:00
Target fix divide and remainder 2005-12-06 23:27:39 +00:00
Transforms getRawValue zero extens for unsigned values, use getsextvalue so that we 2005-12-05 18:23:57 +00:00
VMCore Add a flag to Module::getGlobalVariable to allow it to return vars with 2005-12-05 05:30:21 +00:00
Makefile Add the Linker library 2004-11-14 21:54:41 +00:00