RFC -- update_equiv_regs and friends

Bernd Schmidt bernds@cambridge.redhat.com
Wed Feb 28 03:22:00 GMT 2001


On Tue, 27 Feb 2001, Jeffrey A Law wrote:

> That's all fine and good, except that it can create equivalences in
> which the alternate form relies on other pseudos which might not be
> live at the point where we want to rematerialize the original pseudo
> that did not get a hard register.

Shouldn't the equivalences be restricted to function invariant expressions?
That should rule out pseudos.

> Consider an insn like this:
>
> (set (pseudo) (mem (lo_sum (tempreg) (symbol_ref))))
>
> tempreg is likely going to die in that insn.
>
> We may attach a REG_EQUIV note to that insn indicating that
> pseudo is equivalent to (mem (lo_sum (tempreg) (symbol_ref)).

It seems that the problem may be the special handling of LO_SUM in
rtx_varies_p.  Maybe we want to change the equivalence to be
(mem (symbol_ref)) if we detect this case.

>   F. Don't consider the first argument of a LO_SUM as special in
>      rtx_varies_p.

Or maybe do that.


Bernd



More information about the Gcc mailing list