Lines Matching defs:loop

59    in the loop body are always executed when the loop is entered.  This
61 for loop preconditioning. */
68 should_duplicate_loop_header_p (basic_block header, struct loop *loop,
75 loop peeling here). */
83 if (optimize_loop_for_size_p (loop))
89 if (flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 0)->dest)
90 && flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 1)->dest))
93 /* If this is not the original loop header, we want it to have just
95 if (header != loop->header && !single_pred_p (header))
125 /* Checks whether LOOP is a do-while style loop. */
128 do_while_loop_p (struct loop *loop)
130 gimple stmt = last_stmt (loop->latch);
132 /* If the latch of the loop is not empty, it is not a do-while loop. */
137 /* If the header contains just a condition, it is not a do-while loop. */
138 stmt = last_and_only_stmt (loop->header);
146 /* For all loops, copy the condition at the end of the loop body in front
147 of the loop. This is beneficial since it increases efficiency of
148 code motion optimizations. It also saves one jump on entry to the loop. */
181 struct loop *loop;
201 FOR_EACH_LOOP (loop, 0)
206 header = loop->header;
208 /* If the loop is already a do-while style one (either because it was
210 we might be in fact peeling the first iteration of the loop. This
212 if (do_while_loop_p (loop))
223 while (should_duplicate_loop_header_p (header, loop, &limit))
225 /* Find a successor of header that is inside a loop; i.e. the new
227 if (flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 0)->dest))
241 "Duplicating header of the loop %d up to edge %d->%d.\n",
242 loop->num, exit->src->index, exit->dest->index);
245 inside the loop. */
249 entry = loop_preheader_edge (loop);
259 /* If the loop has the form "for (i = j; i < j + 10; i++)" then
292 are not now, since there was the loop exit condition. */
293 split_edge (loop_preheader_edge (loop));
294 split_edge (loop_latch_edge (loop));