llvm-6502/lib
Chris Lattner 91153686f0 canonicalize constants to the RHS of addc/adde. If nothing uses the carry out of
addc, turn it into add.

This allows us to compile:

long long test(long long A, unsigned B) {
  return (A + ((long long)B << 32)) & 123;
}

into:

_test:
        movl $123, %eax
        andl 4(%esp), %eax
        xorl %edx, %edx
        ret

instead of:
_test:
        xorl %edx, %edx
        movl %edx, %eax
        addl 4(%esp), %eax   ;; add of zero
        andl $123, %eax
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34909 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-04 20:03:15 +00:00
..
Analysis Speed up Loop::isLCSSAForm by using a hash table instead of a sorted vector. 2007-03-04 04:06:39 +00:00
Archive move archive-specific stuff out of bcreader into archive library. 2007-02-07 23:53:17 +00:00
AsmParser Regenerate. 2007-03-01 19:41:47 +00:00
Bytecode Use a simpler constructor for ConstantInt. 2007-03-01 20:25:31 +00:00
CodeGen canonicalize constants to the RHS of addc/adde. If nothing uses the carry out of 2007-03-04 20:03:15 +00:00
Debugger Don't use <sstream> in Streams.h but <iosfwd> instead. 2006-12-07 23:41:45 +00:00
ExecutionEngine Remove unnecessary #include. 2007-03-03 18:29:16 +00:00
Linker For PR1195: 2007-02-15 02:26:10 +00:00
Support Fix ashr for bitwidths > 64. This is now validated up to 1024 bits. 2007-03-02 22:39:11 +00:00
System fix typo 2007-03-04 06:36:24 +00:00
Target add missing braces 2007-03-04 06:13:52 +00:00
Transforms minor cleanups 2007-03-04 04:50:21 +00:00
VMCore Fix constant folding of fp->int bitcast for vectors. 2007-03-03 08:32:46 +00:00
Makefile Changes to support making the shift instructions be true BinaryOperators. 2007-02-02 02:16:23 +00:00