[PATCH] reload fix for the compile/20000127-1.c failure on sparc64-linux
Jeffrey A Law
law@cygnus.com
Fri Apr 28 14:38:00 GMT 2000
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
More information about the Gcc-patches
mailing list