llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner 15045b6973 Fold "and (LOAD P), 255" -> zextload. This allows us to compile:
unsigned foo3(unsigned *P) { return *P & 255; }
as:
_foo3:
        lbz r3, 3(r3)
        blr

instead of:

_foo3:
        lwz r2, 0(r3)
        rlwinm r3, r2, 0, 24, 31
        blr

and:

unsigned short foo2(float a) { return a; }

as:
_foo2:
        fctiwz f0, f1
        stfd f0, -8(r1)
        lhz r3, -2(r1)
        blr

instead of:

_foo2:
        fctiwz f0, f1
        stfd f0, -8(r1)
        lwz r2, -4(r1)
        rlwinm r3, r2, 0, 16, 31
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26417 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-28 06:35:35 +00:00
..
DAGCombiner.cpp Fold "and (LOAD P), 255" -> zextload. This allows us to compile: 2006-02-28 06:35:35 +00:00
LegalizeDAG.cpp Fix a problem on itanium with memset. The value to set has been promoted to 2006-02-20 06:38:35 +00:00
Makefile
ScheduleDAG.cpp Added an offset field to ConstantPoolSDNode. 2006-02-25 09:54:52 +00:00
ScheduleDAGList.cpp make -debug output less newliney 2006-02-02 00:38:08 +00:00
ScheduleDAGSimple.cpp
SelectionDAG.cpp Print ConstantPoolSDNode offset field. 2006-02-26 08:36:57 +00:00
SelectionDAGISel.cpp Add support for output memory constraints. 2006-02-27 23:45:39 +00:00
SelectionDAGPrinter.cpp
TargetLowering.cpp Implement bit propagation through sub nodes, this (re)implements 2006-02-27 01:00:42 +00:00