llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner 94683777ae constant fold bits_convert in getNode and in the dag combiner for fp<->int
conversions.  This allows V8 to compiles this:

void %test() {
        call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null )
        ret void
}

into:

test:
        save -96, %o6, %o6
        sethi 0, %o3
        sethi 1049088, %o2
        sethi 1048576, %o1
        sethi 1040384, %o0
        or %g0, %o3, %o4
        call test2
        nop
        restore %g0, %g0, %g0
        retl
        nop

instead of:

test:
        save -112, %o6, %o6
        sethi 0, %o4
        sethi 1049088, %l0
        st %o4, [%i6+-12]
        st %l0, [%i6+-16]
        ld [%i6+-12], %o3
        ld [%i6+-16], %o2
        sethi 1048576, %o1
        sethi 1040384, %o0
        call test2
        nop
        restore %g0, %g0, %g0
        retl
        nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24980 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-23 05:30:37 +00:00
..
DAGCombiner.cpp constant fold bits_convert in getNode and in the dag combiner for fp<->int 2005-12-23 05:30:37 +00:00
LegalizeDAG.cpp Fix a pasto 2005-12-23 00:52:30 +00:00
Makefile Change Library Names Not To Conflict With Others When Installed 2004-10-27 23:18:45 +00:00
ScheduleDAG.cpp Disengage DEBUG_LOC from non-PPC targets. 2005-12-21 20:51:37 +00:00
SelectionDAG.cpp constant fold bits_convert in getNode and in the dag combiner for fp<->int 2005-12-23 05:30:37 +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