On Tue, 2012-02-28 at 11:52 -0600, William J. Schmidt wrote:
> On Tue, 2012-02-28 at 11:03 -0600, William J. Schmidt wrote:
> 
> > I think this is probably a problem with how cprop_into_successor_phis
> > works.  It only propagates into immediate successors of a block.  In
> > this case copies are propagated from bb12 into phis in bb13 and bb14 (of
> > which there are none).  Seems like it could propagate into phis of all
> > dominator children, which would catch bb15.  I haven't looked at this
> > part of the code in too much detail, but I'm guessing since bb15's
> > immediate dominator is bb12, this is the last chance to get the value
> > propagated into the phi.
> > 
> > When I get more time, I'll walk through the logic for this test to
> > confirm, and post here with the results.
> > 
> > If this is the problem, then I doubt anything will be fixed for this in
> > the limited time left for 4.7.  You'd want to open a missed-optimization
> > PR for it.
> 
> No, this isn't right.  I see in the dump that the copy is being removed
> from the const_and_copies_table after processing block 13 and before
> processing block 14.  That's presumably a bug.  I'll keep looking.
> 

OK, I see the problem.  We have a long-standing bug in dom's use of edge
threading, which quietly corrupts the const_and_copy stack.  I'll create
a bug report and post a patch for you to try out.  My testing shows that
the redundant phi is properly handled now, but let's see if it solves
your performance issue.

Thanks,
Bill

> Bill

Reply via email to