On 5/21/07, Tehila Meyzels <[EMAIL PROTECTED]> wrote:
Hi, 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;
To prevent ifcvt from moving computations into loops. See this patch: http://gcc.gnu.org/ml/gcc-patches/2003-07/msg01864.html Gr. Steven