llvm-project/llvm/lib
Chris Lattner 1ecb2a2dac Use the new TargetLowering::ComputeNumSignBits method to eliminate
sign_extend_inreg operations.  Though ComputeNumSignBits is still rudimentary,
this is enough to compile this:

short test(short X, short x) {
  int Y = X+x;
  return (Y >> 1);
}
short test2(short X, short x) {
  int Y = (short)(X+x);
  return Y >> 1;
}

into:

_test:
        add r2, r3, r4
        srawi r3, r2, 1
        blr
_test2:
        add r2, r3, r4
        extsh r2, r2
        srawi r3, r2, 1
        blr

instead of:

_test:
        add r2, r3, r4
        srawi r2, r2, 1
        extsh r3, r2
        blr
_test2:
        add r2, r3, r4
        extsh r2, r2
        srawi r2, r2, 1
        extsh r3, r2
        blr

llvm-svn: 28146
2006-05-06 09:30:03 +00:00
..
Analysis Implement Transforms/IndVarsSimplify/complex-scev.ll, a case where we didn't 2006-04-26 18:34:07 +00:00
AsmParser Make sure CVS versions of yacc and lex files get distributed. 2006-04-12 20:57:05 +00:00
Bytecode use isValidOperands instead of duplicating checks 2006-04-08 04:09:19 +00:00
CodeGen Use the new TargetLowering::ComputeNumSignBits method to eliminate 2006-05-06 09:30:03 +00:00
Debugger Add the README files to the distribution. 2006-04-13 06:39:24 +00:00
ExecutionEngine Adjust to use proper TargetData copy ctor 2006-05-04 21:18:40 +00:00
Linker Add shufflevector support 2006-04-08 01:19:47 +00:00
Support Fix PR743: emit -help output of a tool to cout, not cerr. 2006-04-28 05:36:25 +00:00
System Mingw32 patches supplied by Anton Korobeynikov. 2006-04-29 18:41:44 +00:00
Target Add some really really simple code for computing sign-bit propagation. 2006-05-06 09:27:13 +00:00
Transforms Move some code around. 2006-05-06 09:00:16 +00:00
VMCore Add assertions that verify that the actual arguments to a call or invoke match 2006-05-03 00:48:22 +00:00
Makefile Add the Linker library 2004-11-14 21:54:41 +00:00