Lines Matching refs:loops
40 /* This file implements the loop unswitching, i.e. transformation of loops like
76 static struct loop *tree_unswitch_loop (struct loops *, struct loop *, basic_block,
78 static bool tree_unswitch_single_loop (struct loops *, struct loop *, int);
84 tree_ssa_unswitch_loops (struct loops *loops)
90 /* Go through inner loops (only original ones). */
91 num = loops->num;
96 loop = loops->parray[i];
103 changed |= tree_unswitch_single_loop (loops, loop, 0);
180 tree_unswitch_single_loop (struct loops *loops, struct loop *loop, int num)
196 /* Only unswitch innermost loops. */
255 nloop = tree_unswitch_loop (loops, loop, bbs[i], cond);
267 /* Invoke itself on modified loops. */
268 tree_unswitch_single_loop (loops, nloop, num + 1);
269 tree_unswitch_single_loop (loops, loop, num + 1);
275 unswitching of innermost loops. COND is the condition determining which
280 tree_unswitch_loop (struct loops *loops, struct loop *loop,
290 return loop_version (loops, loop, unshare_expr (cond),