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: Wed, 06 Dec 2006 22:34:10 -0600
- Subject: Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug
- References: <200612062127.kB6LRvMp017523@d12av02.megacenter.de.ibm.com>
On Wed, 2006-12-06 at 22:27 +0100, Ulrich Weigand wrote:
> So to get back to my original question: can you verify that it is in fact
> the code in the second half of the "if" I quoted in the earlier message
> that causes eliminate_regs_in_insn to replace just the one occurrance of
> the eliminable sfp register and then immediately return?
Sorry for misunderstanding you. Yes, we do drop into the second half of
that if and we only update the "update" pattern and then jump to "done"
without updating the "load" pattern.
> The solution would return an insn containing only the
> (set (reg/f:SI 9 9 [orig:124 D.966 ] [124])
> (plus:SI (reg/f:SI 1 1)
> (const_int 8 [0x8])))
> part, which would subsequently cause an addi instruction to be
> generated. Since there isn't any match_dup any more, that failure
> mode cannot apply any longer.
Ok, sounds good to me. Do you have a recommendation on how we can
achieve that?
Peter