Lines Matching defs:header
1 /* Loop header copying on trees.
51 should_duplicate_loop_header_p (basic_block header, struct loop *loop,
59 if (header->aux)
62 gcc_assert (EDGE_COUNT (header->succs) > 0);
63 if (single_succ_p (header))
65 if (flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 0)->dest)
66 && flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 1)->dest))
69 /* If this is not the original loop header, we want it to have just
71 if (header != loop->header && !single_pred_p (header))
74 last = last_stmt (header);
80 for (bsi = bsi_start (header); !bsi_end_p (bsi); bsi_next (&bsi))
110 /* If the header contains just a condition, it is not a do-while loop. */
111 stmt = last_and_only_stmt (loop->header);
129 basic_block header;
156 header = loop->header;
165 /* Iterate the header copying up to limit; this takes care of the cases
168 the header to have just a single successor and copying up to
173 while (should_duplicate_loop_header_p (header, loop, &limit))
175 /* Find a successor of header that is inside a loop; i.e. the new
176 header after the condition is copied. */
177 if (flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 0)->dest))
178 exit = EDGE_SUCC (header, 0);
180 exit = EDGE_SUCC (header, 1);
181 bbs[n_bbs++] = header;
183 header = exit->dest;
191 "Duplicating header of the loop %d up to edge %d->%d.\n",
194 /* Ensure that the header will have just the latch as a predecessor