regmove question

Jeffrey A Law law@cygnus.com
Thu Sep 30 19:57:00 GMT 1999


  In message < 199909021925.UAA30257@phal.cygnus.co.uk >you write:
  > > I believe that leaving a (now bogus) death node for reg24 on insn 14
  > > causes regmove to think it can clobber reg24 at insn 24.
  > 
  > Yes, you're right - the RTX_UNCHANGING_P bit in SRC is a red herring,
  > it's really the RTX_UNCHANGING_P in the other source register that
  > confuses regmove the most here.
  > 
  > The code that checks if it would be OK thinks that it's all right when
  > stable_but_for_p returns true.  However, although register 24 is
  > unchanging, it's still a register which would need updating of REG_DEAD /
  > REG_UNUSED notes.  If we wanted to do a full data flow analysis, there
  > would be no need for the stable_but_for_p call in the first place,
  > so I think it's best just to punt in this case.
  > 
  > Thu Sep  2 20:08:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
  > 
  >         * regmove.c (fixup_match_1): Don't change an unchanging register.
  >         (stable_but_for_p): Renamed to:
  >         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
  >         Changed all callers.
Thanks.  I went ahead and installed this patch.

I may include this in gcc-2.95.2.  I'm not sure yet.

Thanks,
jeff



More information about the Gcc-bugs mailing list