This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: egcs-2.92.02 19980905 (m68k-next-nextstep3): Address of hoisted load clobbered
- To: law at cygnus dot com, Richard Henderson <rth at cygnus dot com>
- Subject: Re: egcs-2.92.02 19980905 (m68k-next-nextstep3): Address of hoisted load clobbered
- From: Richard Henderson <rth at cygnus dot com>
- Date: Wed, 9 Sep 1998 22:07:42 -0700
- Cc: Toon Moene <toon at moene dot indiv dot nluug dot nl>, egcs at cygnus dot com, egcs-patches at cygnus dot com
- References: <19980909005126.A21382@dot.cygnus.com> <11758.905399101@hurl.cygnus.com>
- Reply-To: Richard Henderson <rth at cygnus dot com>
On Wed, Sep 09, 1998 at 09:45:01PM -0600, Jeffrey A Law wrote:
> > * loop.c (load_mems): Copy rtx for output mem.
> Can you say a little bit more about why the shared rtl is causing a
> problem?
(insn 238 233 277 (set:DF (reg/v:DF 100)
(mem/s:DF (reg:SI 66))) 60 {movdf+1} (insn_list 229 (nil))
(nil))
[the loop]
(insn 240 239 192 (set:DF (mem/s:DF (reg:SI 66))
(reg/v:DF 100)) 60 {movdf+1} (nil)
(expr_list:REG_DEAD (reg/v:DF 100)
(expr_list:REG_DEAD (reg:SI 66)
(nil))))
Reload spilled reg 66 in the load. Since the mem was shared, that
modified the mem in the store such that it no longer needed reloading.
Of course the reload register involved was reused in the meantime.
r~