This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug
- From: Peter Bergner <bergner at vnet dot ibm dot com>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 07 Dec 2006 12:57:10 -0600
- Subject: Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug
- References: <200612071700.kB7H0UDk022973@d12av02.megacenter.de.ibm.com>
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