This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] reload fix for the compile/20000127-1.c failure on sparc64-linux
- To: Jakub Jelinek <jakub at redhat dot com>
- Subject: Re: [PATCH] reload fix for the compile/20000127-1.c failure on sparc64-linux
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Fri, 28 Apr 2000 14:30:18 -0600
- cc: gcc-patches at gcc dot gnu dot org
- Reply-To: law at cygnus dot com
In message <20000127195122.H948@mff.cuni.cz>you write:
> Hi!
>
> After some investigation (together with Jan Hubicka) we found that
> emit_input_reload_insns does not honour PREFERRED_RELOAD_CLASS NO_REGS
> forcing of constants to memory. rl->in in this case is the correct MEM
> of the constant in memory which just need to be reloaded so that the addres
> s
> is build, while oldequiv is (const_int 1) in the testcase.
> Without this patch, gcc calls gen_movsi which tries to validize that memory
> ,
> but aborts because it cannot do it during reload, but with this patch
> gen_reload handles the address just fine.
>
> 2000-01-27 Jakub Jelinek <jakub@redhat.com>
>
> * reload1.c (emit_input_reload_insns): Honour forcing of constants
> into memory by PREFERRED_RELOAD_CLASS NO_REGS.
Is this still needed?
I just built a sparc64-linux cross compiler and couldn't get 20000127-1.c
to fail.
If it is still needed, then we should do some additional investigation --
it seems to me that the decision to pick something out of memory due to
PREFERRED_RELOAD_CLASS should be made when we actually record the reloads,
not when we're emitting them. ie, I would think this kind of stuff
belongs in push_reload and friends. But I could be wrong since there wasn't
a lot of explanation included with the patch.
jeff