llvm-6502/lib
Chris Lattner df5cdb5288 in X86-64 CCC, i8/i16 arguments are already properly zext/sext'd on input.
Capture this so that downstream zext/sext's are optimized out.  This
compiles:
  int test(short X) { return (int)X; }

to:

_test:
        movl %edi, %eax
        ret

instead of:

_test:
        movswl %di, %eax
        ret


GCC produces this bizarre code:

_test:
        movw    %di, -12(%rsp)
        movswl  -12(%rsp),%eax
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34623 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 03:18:56 +00:00
..
Analysis Fix thinko. 2007-02-23 18:05:55 +00:00
Archive move archive-specific stuff out of bcreader into archive library. 2007-02-07 23:53:17 +00:00
AsmParser remove dead methods 2007-02-19 07:44:24 +00:00
Bytecode For PR1195: 2007-02-15 03:39:18 +00:00
CodeGen Fold (sext (truncate x)) more aggressively, by avoiding creation of a 2007-02-26 03:13:59 +00:00
Debugger Don't use <sstream> in Streams.h but <iosfwd> instead. 2006-12-07 23:41:45 +00:00
ExecutionEngine Fix PR1216 by cleaning up the ownership of JITResolver. 2007-02-24 02:57:03 +00:00
Linker For PR1195: 2007-02-15 02:26:10 +00:00
Support Rewrite lshr to not do bit by bit copy but to copy and shift whole words. 2007-02-26 01:19:48 +00:00
System Add possibility to set memory limit for binaries run via libSystem. This 2007-02-16 19:11:07 +00:00
Target in X86-64 CCC, i8/i16 arguments are already properly zext/sext'd on input. 2007-02-26 03:18:56 +00:00
Transforms Fix InstCombine/2007-02-23-PhiFoldInfLoop.ll and PR1217 2007-02-24 01:03:45 +00:00
VMCore Rework GlobalValue::removeDeadConstantUsers to always remove dead constant 2007-02-25 21:06:13 +00:00
Makefile Changes to support making the shift instructions be true BinaryOperators. 2007-02-02 02:16:23 +00:00