This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Don't disallow copyprop for virtual ops for loop depth check
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: dberlin at dberlin dot org (Daniel Berlin)
- Cc: pinskia at gmail dot com (Andrew Pinski), gcc-patches at gcc dot gnu dot org
- Date: Fri, 1 Dec 2006 18:38:44 -0500 (EST)
- Subject: Re: [PATCH] Don't disallow copyprop for virtual ops for loop depth check
> On 11/28/06, Andrew Pinski <email@example.com> wrote:
> > Hi,
> > I noticed for virtual operands, we don't copyprop some names if it was
> > a loop variant. This is the correct thing for the normal operands but
> > for virtual operands, it makes less sense as we don't do coalescing on
> > virtual operands during out-of-ssa. This patch has a side effect of
> > also making a bug in PRE latent (PR 29922).
> The original check was not because of coalescing, but because we would
> copy prop in-loop variables outside the loop, causing *more*
> invariantness in nested loops.
> Why do you think this is different for virtual oeprands?
Because virtual operands are special. For PHIs, they will never generate
any code at all and we can never have an invariant virtual operand that gets
copyproped into a loop that is not already invariant. Virtual operands
copy prop can never change if a ssa name invariant or not as all are defined
(at least right now) by the same variable with a different ssa number. That is
virtual operands are always linear.
I cannot think of any case which would cause a virtual operand copyprop cause more