llvm-6502/lib/CodeGen/SelectionDAG
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
..
CallingConvLower.cpp add methods for analysis of call results and return nodes. 2007-02-28 07:09:40 +00:00
DAGCombiner.cpp canonicalize constants to the RHS of addc/adde. If nothing uses the carry out of 2007-03-04 20:03:15 +00:00
LegalizeDAG.cpp Fix CodeGen/Generic/fpowi-promote.ll and PR1239 2007-03-03 23:43:21 +00:00
Makefile
ScheduleDAG.cpp print target nodes nicely 2007-02-17 06:38:37 +00:00
ScheduleDAGList.cpp switch the sched unit map over to use a DenseMap instead of std::map. This 2007-02-03 01:34:13 +00:00
ScheduleDAGRRList.cpp switch the sched unit map over to use a DenseMap instead of std::map. This 2007-02-03 01:34:13 +00:00
ScheduleDAGSimple.cpp switch the VRBaseMap in the scheduler from an std::map to a DenseMap. This 2007-02-04 08:47:20 +00:00
SelectionDAG.cpp eliminate some ops if they have an undef RHS 2007-03-04 20:01:46 +00:00
SelectionDAGISel.cpp Lower eh filter intrinsic. 2007-03-01 20:24:30 +00:00
SelectionDAGPrinter.cpp Removing even more <iostream> includes. 2006-12-07 20:04:42 +00:00
TargetLowering.cpp initialize a instance variable 2007-02-25 01:28:05 +00:00