This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug


On Thu, 2006-12-07 at 18:00 +0100, Ulrich Weigand wrote:
> Merge the two branches of the "if" into something like:
> 
>    if (offset == 0 || plus_src)
>     {
>       ... modeled after the current offset == 0 case, except
>       for replacing to_rtx with plus_constant (to_rtx, offset)
>       in this line:
> 
> 		PATTERN (insn) = gen_rtx_SET (VOIDmode,
>                                               SET_DEST (old_set),
>                                               to_rtx);
> 
>     }
>    else
>      break;

That seems to work and has the added benefit of actually removing
the dead lwzu instruction which my hack didn't/couldn't do.  I did
a non bootstrap build to quickly see whether this worked or not.
Since it does, I'll go ahead and do a full bootstrap and testsuite
runs.  Thanks.

        stw 0,12(1)
        li 0,3
        stw 0,16(1)
-       mr 9,1
-       lwzu 0,8(9)
+       addi 9,1,8
        lis 10,.LANCHOR0@ha
        la 10,.LANCHOR0@l(10)
        lwz 9,8(9)


Peter



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]