llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner 5710410dea fold (conv (load x)) -> (load (conv*)x).
This allows us to compile this:
void foo(double);
void bar(double *X) { foo(*X); }

To this:

bar:
        save -96, %o6, %o6
        ld [%i0+4], %o1
        ld [%i0], %o0
        call foo
        nop
        restore %g0, %g0, %g0
        retl
        nop

instead of this:

bar:
        save -104, %o6, %o6
        ldd [%i0], %f0
        std %f0, [%i6+-8]
        ld [%i6+-4], %o1
        ld [%i6+-8], %o0
        call foo
        nop
        restore %g0, %g0, %g0
        retl
        nop

on SparcV8.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24982 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-23 05:44:41 +00:00
..
DAGCombiner.cpp fold (conv (load x)) -> (load (conv*)x). 2005-12-23 05:44:41 +00:00
LegalizeDAG.cpp Fix a pasto 2005-12-23 00:52:30 +00:00
Makefile
ScheduleDAG.cpp Disengage DEBUG_LOC from non-PPC targets. 2005-12-21 20:51:37 +00:00
SelectionDAG.cpp Fold bitconv(bitconv(x)) -> x. We now compile this: 2005-12-23 05:37:50 +00:00
SelectionDAGISel.cpp enable the gep isel opt 2005-12-21 19:36:36 +00:00
SelectionDAGPrinter.cpp Added an index field to GlobalAddressSDNode so it can represent X+12, etc. 2005-11-30 02:04:11 +00:00
TargetLowering.cpp Lefted out TargetLowering:: 2005-12-21 23:14:54 +00:00