reload bug

Jeffrey A Law law@cygnus.com
Tue Dec 1 10:49:00 GMT 1998


  In message < 199812011535.PAA09466@phal.cygnus.co.uk >you write:
  > > 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.
  > 
  > Yes, it is the right thing to do.
  > 
  > Basically, there are two ways we manage references to pseudos:
  > If we can make a reload, even if it's optional, the reload itself
  > carries the information.  emit_reload_insns has to use that information to
  > update its tables.
  > If for some reason we can't make a reload at all, a USE or CLOBBER of the
  > pseudo is created.  CLOBBERs are directly evaluated by emit_reload_insns,
  > while USEs are evaluated by delete_output_reload.
Ok.  I'll do some further tests with it then.

Thanks!

jeff



More information about the Gcc-bugs mailing list