Tehila Meyzels <[EMAIL PROTECTED]> writes: > I'd like to get an explanation why ifcvt.c checks whether 1 of the 2 > successors of the IF-header block has a stmt that exits from the loop? > Why does it prevent the if-conversion? > I'm referring to the following code: > > /* Nor exit the loop. */ > if ((then_edge->flags & EDGE_LOOP_EXIT) > || (else_edge->flags & EDGE_LOOP_EXIT)) > return NULL;
I think it's just a heuristic. If one of the edges exits the loop, then it is probably a loop-exit test, and it is quite unlikely that we can do any useful if-conversion. Ian