| commit | 54560f6887d712a674484909d1f818b7bd1c553c | [log] [tgz] | 
|---|---|---|
| author | Chris Lattner <sabre@nondot.org> | Fri Dec 23 05:44:41 2005 +0000 | 
| committer | Chris Lattner <sabre@nondot.org> | Fri Dec 23 05:44:41 2005 +0000 | 
| tree | f31c7656939514b952641ee6ff4f95475880c39a | |
| parent | efbbedbf4a1eb6890fb8e529aabcfc05025ec080 [diff] | 
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.
llvm-svn: 24982