On Thu, 26 Sep 2013, Jakub Jelinek wrote:

> On Thu, Sep 26, 2013 at 03:54:19PM +0200, Richard Biener wrote:
> > 
> > After much thinking I settled on removing the restriction from
> > forwprop that avoids propagating non-invariant addresses into
> > loops.  As forwprop is mainly seen as a way to canonicalize the IL
> > and simplify it for further passes this seems like the correct thing
> > to do.  LIM and IVOPTs should undo any harm this causes, otherwise
> > I'll find another way to fix the fallout.
> 
> But, aren't some forwprop passes run after LIM and IVOPTs, so while
> LIM and IVOPTs undo that harm, forwprop4 pass adds it there again?

LIM would move a memory reference, forwprop nowadays hopefully only
propagates these beasts into dereferences.  IVOPTs only works on
memory references as well, exposing lowered address computation,
thus a different kind of addresses.

> I guess it is just fine to remove the restriction for forwprop{1,2,3},
> but for forwprop4 I'm not that sure.  You are then hoping RTL optimizations
> will undo the harm, but if they don't, ...

... then we find a solution to address this.  No, I don't have my
bets on RTL optimizers fixing this but instead on no fallout actually
happening.

Richard.

Reply via email to