reload bug

Jeffrey A Law law@cygnus.com
Mon Nov 30 21:50:00 GMT 1998


  In message <199812010125.BAA18188@phal.cygnus.co.uk>you write:
  > > Joern, Bernd, if one of you could dive into this I'm sure everyone would
  > > appreciate it.  This is causing the x86 port to mis-compile itself in som
  > e
  > > circumstances.
  > 
  > I don't have any CPU cycles to spare right now, but from your analysis
  > of the problem, I'd think this patch should help by clearing
  > spill_reg_store[0] when processing reload 0 of insn 32.
  > 
  > Tue Dec  1 01:21:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
  > 
  > 	* reload1.c (emit_reload_insns): Clear spill_reg_store
  > 	when doing a new non-inherited reload from the same pseudo.
A note, if I move your new code out one nesting level, then it appears to
work.  ie, I put your new code before this statement:

      /* I is nonneg if this reload used a register.
         If reload_reg_rtx[r] is 0, this is an optional reload
         that we opted to ignore.  */

      if (i >= 0 && reload_reg_rtx[r] != 0)
[ ... ]

I have no clue if that's the right thing to do or not.

jeff



More information about the Gcc-bugs mailing list