This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [PATCH] reload fix for the compile/20000127-1.c failure on sparc64-linux



  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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]