Lines Matching defs:loops
35 /* This pass moves constant conditions out of loops, duplicating the loop
78 transformation on innermost loops, as the benefit of doing it on loops
82 static struct loop *unswitch_loop (struct loops *, struct loop *,
84 static void unswitch_single_loop (struct loops *, struct loop *, rtx, int);
140 unswitch_loops (struct loops *loops)
145 /* Go through inner loops (only original ones). */
146 num = loops->num;
151 loop = loops->parray[i];
158 unswitch_single_loop (loops, loop, NULL_RTX, 0);
161 verify_loop_structure (loops);
262 unswitch_single_loop (struct loops *loops, struct loop *loop,
280 /* Only unswitch innermost loops. */
354 remove_path (loops, e);
362 remove_path (loops, e);
379 nloop = unswitch_loop (loops, loop, bbs[i], cond, cinsn);
382 /* Invoke itself on modified loops. */
383 unswitch_single_loop (loops, nloop, rconds, num + 1);
384 unswitch_single_loop (loops, loop, conds, num + 1);
394 unswitching of innermost loops. UNSWITCH_ON must be executed in every
401 unswitch_loop (struct loops *loops, struct loop *loop, basic_block unswitch_on,
426 if (!duplicate_loop_to_header_edge (loop, entry, loops, 1,
469 nloop = loopify (loops, latch_edge,
473 /* Remove branches that are now unreachable in new loops. */
474 remove_path (loops, true_edge);
475 remove_path (loops, false_edge);
477 /* One of created loops do not have to be subloop of the outer loop now,