> > +   l = e->src->loop_father;
> > +   while (l && loop_outer (l))
> > +     {
> > +       while (loop_outer (loop_outer (l))
> > +            && dominated_by_p (CDI_DOMINATORS,
> > +                               loop_outer (l)->latch, e->dest))
> > +         unloop (loop_outer (l), &irred_invalidated);
> > +       l = loop_outer (l);
> > +     }
> 
> It must be possible to merge the two loops, no?  And it asks for a
> comment.

The problem is that unloop can cascade, so looking up loop_father for the
innermost loop and looking at loop_outer pointer elsewhere is the only up to
date way to get to the next unlooping candidate, so I did not see any natural
way to really merge the loops.

The comment before the two loops is still correct, just implementation was
buggy.

Honza
> 
> >    /* Identify the path.  */
> >    nrem = find_path (e, &rem_bbs);

Reply via email to