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);