This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: RFC -- update_equiv_regs and friends
- To: Jeffrey A Law <law at redhat dot com>
- Subject: Re: RFC -- update_equiv_regs and friends
- From: Bernd Schmidt <bernds at cambridge dot redhat dot com>
- Date: Wed, 28 Feb 2001 11:22:04 +0000 (GMT)
- Cc: <gcc at gcc dot gnu dot org>
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