a question regarding ifcvt.c

Steven Bosscher stevenb.gcc@gmail.com
Mon May 21 20:01:00 GMT 2007


On 5/21/07, Tehila Meyzels <TEHILA@il.ibm.com> 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



More information about the Gcc mailing list