llvm-6502/lib
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
..
Analysis Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
Archive Final Changes For PR495: 2005-07-08 03:08:58 +00:00
AsmParser Fix grammar 2005-06-24 18:00:40 +00:00
Bytecode Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
CodeGen Fix debug info to not print out recently freed memory. 2005-07-27 23:11:25 +00:00
Debugger For PR495: 2005-07-07 23:21:43 +00:00
ExecutionEngine Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
Linker For PR495: 2005-07-07 23:21:43 +00:00
Support Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
System Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
Target Fold constant adds into loads and stores to frame indices. 2005-07-28 03:02:05 +00:00
Transforms Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
VMCore Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
Makefile