2012/1/4 Jan Hubicka <hubi...@ucw.cz>:
>> > +   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.

I see.  Patch is ok then.

Richard.

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

Reply via email to