llvm-6502/lib/Target
Nate Begeman 2a05c8e260 Fold constant adds into loads and stores to frame indices.
For the following code:
double %ext(int %A.0__, long %A.1__) {
        %A_addr = alloca %typedef.DComplex              ; <%typedef.DComplex*> [#uses=2]
        %tmp.1 = cast %typedef.DComplex* %A_addr to int*                ; <int*> [#uses=1]
        store int %A.0__, int* %tmp.1
        %tmp.2 = getelementptr %typedef.DComplex* %A_addr, int 0, uint 1                ; <double*> [#uses=2]
        %tmp.3 = cast double* %tmp.2 to long*           ; <long*> [#uses=1]
        store long %A.1__, long* %tmp.3
        %tmp.5 = load double* %tmp.2            ; <double> [#uses=1]
        ret double %tmp.5
}

We now generate:
_ext:
.LBB_ext_0:     ;
        stw r3, -12(r1)
        stw r4, -8(r1)
        stw r5, -4(r1)
        lfd f1, -8(r1)
        blr

Instead of:
_ext:
.LBB_ext_0:     ;
        stw r3, -12(r1)
        addi r2, r1, -12
        stw r4, 4(r2)
        stw r5, 8(r2)
        lfd f1, 4(r2)
        blr

This also fires hundreds of times on MultiSource.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22533 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-28 03:02:05 +00:00
..
Alpha Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
CBackend Fixed PR#596: 2005-07-14 19:41:16 +00:00
IA64 Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
PowerPC Fold constant adds into loads and stores to frame indices. 2005-07-28 03:02:05 +00:00
Skeleton Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFile 2005-06-25 02:48:37 +00:00
Sparc Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
SparcV8 Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
SparcV9 Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
X86 Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
Makefile Implement the --enable-targets= feature of the configure script. The make 2005-04-22 17:20:11 +00:00
MRegisterInfo.cpp Convert tabs to spaces 2005-04-22 17:54:37 +00:00
Target.td Add some bits that can be set for instructions. 2005-01-02 02:27:48 +00:00
TargetData.cpp Remove trailing whitespace 2005-04-21 22:55:34 +00:00
TargetFrameInfo.cpp Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
TargetInstrInfo.cpp Convert tabs to spaces 2005-04-22 17:54:37 +00:00
TargetMachine.cpp First round of support for doing scalar FP using the SSE2 ISA extension and 2005-07-06 18:59:04 +00:00
TargetMachineRegistry.cpp Remove trailing whitespace 2005-04-21 22:55:34 +00:00
TargetSchedInfo.cpp Convert tabs to spaces 2005-04-22 17:54:37 +00:00
TargetSubtarget.cpp Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00