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