[PATCH] reload fix for the compile/20000127-1.c failure on sparc64-linux
Jeffrey A Law
Fri Apr 28 14:38:00 GMT 2000
In message <20000127195122.H948@mff.cuni.cz>you write:
> 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
> 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 <email@example.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
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.
More information about the Gcc-patches