Lines Matching refs:loop

62 flow_loop_nested_p (const class loop *outer, const class loop *loop)  in flow_loop_nested_p()  argument
66 return (loop_depth (loop) > odepth in flow_loop_nested_p()
67 && (*loop->superloops)[odepth] == outer); in flow_loop_nested_p()
73 class loop *
74 superloop_at_depth (class loop *loop, unsigned depth) in superloop_at_depth() argument
76 unsigned ldepth = loop_depth (loop); in superloop_at_depth()
81 return loop; in superloop_at_depth()
83 return (*loop->superloops)[depth]; in superloop_at_depth()
89 get_loop_latch_edges (const class loop *loop) in get_loop_latch_edges() argument
95 FOR_EACH_EDGE (e, ei, loop->header->preds) in get_loop_latch_edges()
97 if (dominated_by_p (CDI_DOMINATORS, e->src, loop->header)) in get_loop_latch_edges()
108 flow_loop_dump (const class loop *loop, FILE *file, in flow_loop_dump() argument
109 void (*loop_dump_aux) (const class loop *, FILE *, int), in flow_loop_dump()
117 if (! loop || ! loop->header) in flow_loop_dump()
120 fprintf (file, ";;\n;; Loop %d\n", loop->num); in flow_loop_dump()
122 fprintf (file, ";; header %d, ", loop->header->index); in flow_loop_dump()
123 if (loop->latch) in flow_loop_dump()
124 fprintf (file, "latch %d\n", loop->latch->index); in flow_loop_dump()
128 latches = get_loop_latch_edges (loop); in flow_loop_dump()
136 loop_depth (loop), (long) (loop_outer (loop) in flow_loop_dump()
137 ? loop_outer (loop)->num : -1)); in flow_loop_dump()
139 if (loop->latch) in flow_loop_dump()
142 gcov_type nit = expected_loop_iterations_unbounded (loop, &read_profile_p); in flow_loop_dump()
143 if (read_profile_p && !loop->any_estimate) in flow_loop_dump()
149 bbs = get_loop_body (loop); in flow_loop_dump()
150 for (i = 0; i < loop->num_nodes; i++) in flow_loop_dump()
156 loop_dump_aux (loop, file, verbose); in flow_loop_dump()
163 flow_loops_dump (FILE *file, void (*loop_dump_aux) (const class loop *, FILE *, int), int verbose) in flow_loops_dump() argument
165 class loop *loop; in flow_loops_dump() local
172 FOR_EACH_LOOP (loop, LI_INCLUDE_ROOT) in flow_loops_dump()
174 flow_loop_dump (loop, file, loop_dump_aux, verbose); in flow_loops_dump()
184 flow_loop_free (class loop *loop) in flow_loop_free() argument
188 vec_free (loop->superloops); in flow_loop_free()
194 for (exit = loop->exits->next; exit != loop->exits; exit = next) in flow_loop_free()
201 ggc_free (loop->exits); in flow_loop_free()
202 ggc_free (loop); in flow_loop_free()
213 loop_p loop; in flow_loops_free() local
216 FOR_EACH_VEC_SAFE_ELT (loops->larray, i, loop) in flow_loops_free()
218 if (!loop) in flow_loops_free()
221 flow_loop_free (loop); in flow_loops_free()
232 flow_loop_nodes_find (basic_block header, class loop *loop) in flow_loop_nodes_find() argument
239 header->loop_father = loop; in flow_loop_nodes_find()
241 FOR_EACH_EDGE (latch, latch_ei, loop->header->preds) in flow_loop_nodes_find()
243 if (latch->src->loop_father == loop in flow_loop_nodes_find()
244 || !dominated_by_p (CDI_DOMINATORS, latch->src, loop->header)) in flow_loop_nodes_find()
249 latch->src->loop_father = loop; in flow_loop_nodes_find()
263 if (ancestor->loop_father != loop) in flow_loop_nodes_find()
265 ancestor->loop_father = loop; in flow_loop_nodes_find()
281 establish_preds (class loop *loop, class loop *father) in establish_preds() argument
287 loop->superloops = 0; in establish_preds()
288 vec_alloc (loop->superloops, depth); in establish_preds()
290 loop->superloops->quick_push (ploop); in establish_preds()
291 loop->superloops->quick_push (father); in establish_preds()
293 for (ploop = loop->inner; ploop; ploop = ploop->next) in establish_preds()
294 establish_preds (ploop, loop); in establish_preds()
305 flow_loop_tree_node_add (class loop *father, class loop *loop, in flow_loop_tree_node_add() argument
306 class loop *after) in flow_loop_tree_node_add()
310 loop->next = after->next; in flow_loop_tree_node_add()
311 after->next = loop; in flow_loop_tree_node_add()
315 loop->next = father->inner; in flow_loop_tree_node_add()
316 father->inner = loop; in flow_loop_tree_node_add()
319 establish_preds (loop, father); in flow_loop_tree_node_add()
325 flow_loop_tree_node_remove (class loop *loop) in flow_loop_tree_node_remove() argument
327 class loop *prev, *father; in flow_loop_tree_node_remove()
329 father = loop_outer (loop); in flow_loop_tree_node_remove()
332 if (father->inner == loop) in flow_loop_tree_node_remove()
333 father->inner = loop->next; in flow_loop_tree_node_remove()
336 for (prev = father->inner; prev->next != loop; prev = prev->next) in flow_loop_tree_node_remove()
338 prev->next = loop->next; in flow_loop_tree_node_remove()
341 loop->superloops = NULL; in flow_loop_tree_node_remove()
346 class loop *
349 class loop *loop = ggc_cleared_alloc<class loop> (); in alloc_loop() local
351 loop->exits = ggc_cleared_alloc<loop_exit> (); in alloc_loop()
352 loop->exits->next = loop->exits->prev = loop->exits; in alloc_loop()
353 loop->can_be_parallel = false; in alloc_loop()
354 loop->constraints = 0; in alloc_loop()
355 loop->nb_iterations_upper_bound = 0; in alloc_loop()
356 loop->nb_iterations_likely_upper_bound = 0; in alloc_loop()
357 loop->nb_iterations_estimate = 0; in alloc_loop()
358 return loop; in alloc_loop()
368 class loop *root; in init_loops_structure()
463 class loop *loop; in flow_loops_find() local
470 loop = header->loop_father; in flow_loops_find()
474 flow_loop_tree_node_remove (loop); in flow_loops_find()
479 loop = alloc_loop (); in flow_loops_find()
481 loop->num = loops->larray->length (); in flow_loops_find()
482 vec_safe_push (loops->larray, loop); in flow_loops_find()
483 loop->header = header; in flow_loops_find()
489 loop->num, header->index); in flow_loops_find()
492 loop->latch = NULL; in flow_loops_find()
493 larray.safe_push (loop); in flow_loops_find()
506 class loop *loop = larray[i]; in flow_loops_find() local
507 basic_block header = loop->header; in flow_loops_find()
511 flow_loop_tree_node_add (header->loop_father, loop); in flow_loops_find()
512 loop->num_nodes = flow_loop_nodes_find (loop->header, loop); in flow_loops_find()
520 if (flow_bb_inside_loop_p (loop, latch)) in flow_loops_find()
522 if (loop->latch != NULL) in flow_loops_find()
525 loop->latch = NULL; in flow_loops_find()
528 loop->latch = latch; in flow_loops_find()
542 const class loop *la = *(const class loop * const *)la_; in sort_sibling_loops_cmp()
543 const class loop *lb = *(const class loop * const *)lb_; in sort_sibling_loops_cmp()
562 loop_p loop; in sort_sibling_loops() local
563 FOR_EACH_LOOP_FN (fn, loop, LI_INCLUDE_ROOT) in sort_sibling_loops()
564 if (loop->inner && loop->inner->next) in sort_sibling_loops()
566 loop_p sibling = loop->inner; in sort_sibling_loops()
574 loop_p *siblingp = &loop->inner; in sort_sibling_loops()
646 find_subloop_latch_edge_by_ivs (class loop *loop ATTRIBUTE_UNUSED, vec<edge> latches) in find_subloop_latch_edge_by_ivs()
667 for (psi = gsi_start_phis (loop->header); !gsi_end_p (psi); gsi_next (&psi)) in find_subloop_latch_edge_by_ivs()
677 if (!bb || !flow_bb_inside_loop_p (loop, bb)) in find_subloop_latch_edge_by_ivs()
698 find_subloop_latch_edge (class loop *loop) in find_subloop_latch_edge() argument
700 vec<edge> latches = get_loop_latch_edges (loop); in find_subloop_latch_edge()
712 latch = find_subloop_latch_edge_by_ivs (loop, latches); in find_subloop_latch_edge()
732 form_subloop (class loop *loop, edge latch) in form_subloop() argument
736 class loop *new_loop; in form_subloop()
739 FOR_EACH_EDGE (e, ei, loop->header->preds) in form_subloop()
744 new_entry = make_forwarder_block (loop->header, mfb_redirect_edges_in_set, in form_subloop()
748 loop->header = new_entry->src; in form_subloop()
755 add_loop (new_loop, loop); in form_subloop()
762 merge_latch_edges (class loop *loop) in merge_latch_edges() argument
764 vec<edge> latches = get_loop_latch_edges (loop); in merge_latch_edges()
771 loop->latch = latches[0]->src; in merge_latch_edges()
775 fprintf (dump_file, "Merged latch edges of loop %d\n", loop->num); in merge_latch_edges()
780 latch = make_forwarder_block (loop->header, mfb_redirect_edges_in_set, in merge_latch_edges()
784 loop->header = latch->dest; in merge_latch_edges()
785 loop->latch = latch->src; in merge_latch_edges()
795 disambiguate_multiple_latches (class loop *loop) in disambiguate_multiple_latches() argument
812 loop->num); in disambiguate_multiple_latches()
818 e = find_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun), loop->header); in disambiguate_multiple_latches()
824 e = find_subloop_latch_edge (loop); in disambiguate_multiple_latches()
828 form_subloop (loop, e); in disambiguate_multiple_latches()
831 merge_latch_edges (loop); in disambiguate_multiple_latches()
839 class loop *loop; in disambiguate_loops_with_multiple_latches() local
841 FOR_EACH_LOOP (loop, 0) in disambiguate_loops_with_multiple_latches()
843 if (!loop->latch) in disambiguate_loops_with_multiple_latches()
844 disambiguate_multiple_latches (loop); in disambiguate_loops_with_multiple_latches()
850 flow_bb_inside_loop_p (const class loop *loop, const_basic_block bb) in flow_bb_inside_loop_p() argument
852 class loop *source_loop; in flow_bb_inside_loop_p()
859 return loop == source_loop || flow_loop_nested_p (loop, source_loop); in flow_bb_inside_loop_p()
866 const class loop *const loop = (const class loop *) glb_loop; in glb_enum_p() local
867 return (bb != loop->header in glb_enum_p()
868 && dominated_by_p (CDI_DOMINATORS, bb, loop->header)); in glb_enum_p()
879 get_loop_body_with_size (const class loop *loop, basic_block *body, in get_loop_body_with_size() argument
882 return dfs_enumerate_from (loop->header, 1, glb_enum_p, in get_loop_body_with_size()
883 body, max_size, loop); in get_loop_body_with_size()
891 get_loop_body (const class loop *loop) in get_loop_body() argument
896 gcc_assert (loop->num_nodes); in get_loop_body()
898 body = XNEWVEC (basic_block, loop->num_nodes); in get_loop_body()
900 if (loop->latch == EXIT_BLOCK_PTR_FOR_FN (cfun)) in get_loop_body()
904 gcc_assert (loop->num_nodes == (unsigned) n_basic_blocks_for_fn (cfun)); in get_loop_body()
905 body[tv++] = loop->header; in get_loop_body()
911 tv = get_loop_body_with_size (loop, body, loop->num_nodes); in get_loop_body()
913 gcc_assert (tv == loop->num_nodes); in get_loop_body()
921 fill_sons_in_loop (const class loop *loop, basic_block bb, in fill_sons_in_loop() argument
931 if (!flow_bb_inside_loop_p (loop, son)) in fill_sons_in_loop()
934 if (dominated_by_p (CDI_DOMINATORS, loop->latch, son)) in fill_sons_in_loop()
939 fill_sons_in_loop (loop, son, tovisit, tv); in fill_sons_in_loop()
943 fill_sons_in_loop (loop, postpone, tovisit, tv); in fill_sons_in_loop()
951 get_loop_body_in_dom_order (const class loop *loop) in get_loop_body_in_dom_order() argument
956 gcc_assert (loop->num_nodes); in get_loop_body_in_dom_order()
958 tovisit = XNEWVEC (basic_block, loop->num_nodes); in get_loop_body_in_dom_order()
960 gcc_assert (loop->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)); in get_loop_body_in_dom_order()
963 fill_sons_in_loop (loop, loop->header, tovisit, &tv); in get_loop_body_in_dom_order()
965 gcc_assert (tv == (int) loop->num_nodes); in get_loop_body_in_dom_order()
973 get_loop_body_in_custom_order (const class loop *loop, in get_loop_body_in_custom_order() argument
976 basic_block *bbs = get_loop_body (loop); in get_loop_body_in_custom_order()
978 qsort (bbs, loop->num_nodes, sizeof (basic_block), bb_comparator); in get_loop_body_in_custom_order()
986 get_loop_body_in_custom_order (const class loop *loop, void *data, in get_loop_body_in_custom_order() argument
989 basic_block *bbs = get_loop_body (loop); in get_loop_body_in_custom_order()
991 gcc_sort_r (bbs, loop->num_nodes, sizeof (basic_block), bb_comparator, data); in get_loop_body_in_custom_order()
999 get_loop_body_in_bfs_order (const class loop *loop) in get_loop_body_in_bfs_order() argument
1006 gcc_assert (loop->num_nodes); in get_loop_body_in_bfs_order()
1007 gcc_assert (loop->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)); in get_loop_body_in_bfs_order()
1009 blocks = XNEWVEC (basic_block, loop->num_nodes); in get_loop_body_in_bfs_order()
1011 blocks[0] = loop->header; in get_loop_body_in_bfs_order()
1012 bitmap_set_bit (visited, loop->header->index); in get_loop_body_in_bfs_order()
1013 while (i < loop->num_nodes) in get_loop_body_in_bfs_order()
1022 if (flow_bb_inside_loop_p (loop, e->dest)) in get_loop_body_in_bfs_order()
1085 class loop *aloop, *cloop; in rescan_loop_exit()
1206 get_loop_exit_edges (const class loop *loop, basic_block *body) in get_loop_exit_edges() argument
1214 gcc_assert (loop->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)); in get_loop_exit_edges()
1220 for (exit = loop->exits->next; exit->e; exit = exit->next) in get_loop_exit_edges()
1228 body = get_loop_body (loop); in get_loop_exit_edges()
1231 for (i = 0; i < loop->num_nodes; i++) in get_loop_exit_edges()
1234 if (!flow_bb_inside_loop_p (loop, e->dest)) in get_loop_exit_edges()
1247 num_loop_branches (const class loop *loop) in num_loop_branches() argument
1252 gcc_assert (loop->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)); in num_loop_branches()
1254 body = get_loop_body (loop); in num_loop_branches()
1256 for (i = 0; i < loop->num_nodes; i++) in num_loop_branches()
1266 add_bb_to_loop (basic_block bb, class loop *loop) in add_bb_to_loop() argument
1274 bb->loop_father = loop; in add_bb_to_loop()
1275 loop->num_nodes++; in add_bb_to_loop()
1276 FOR_EACH_VEC_SAFE_ELT (loop->superloops, i, ploop) in add_bb_to_loop()
1294 class loop *loop = bb->loop_father; in remove_bb_from_loops() local
1299 gcc_assert (loop != NULL); in remove_bb_from_loops()
1300 loop->num_nodes--; in remove_bb_from_loops()
1301 FOR_EACH_VEC_SAFE_ELT (loop->superloops, i, ploop) in remove_bb_from_loops()
1316 class loop *
1317 find_common_loop (class loop *loop_s, class loop *loop_d) in find_common_loop()
1343 delete_loop (class loop *loop) in delete_loop() argument
1346 flow_loop_tree_node_remove (loop); in delete_loop()
1349 (*current_loops->larray)[loop->num] = NULL; in delete_loop()
1352 flow_loop_free (loop); in delete_loop()
1358 cancel_loop (class loop *loop) in cancel_loop() argument
1362 class loop *outer = loop_outer (loop); in cancel_loop()
1364 gcc_assert (!loop->inner); in cancel_loop()
1367 bbs = get_loop_body (loop); in cancel_loop()
1368 for (i = 0; i < loop->num_nodes; i++) in cancel_loop()
1372 delete_loop (loop); in cancel_loop()
1377 cancel_loop_tree (class loop *loop) in cancel_loop_tree() argument
1379 while (loop->inner) in cancel_loop_tree()
1380 cancel_loop_tree (loop->inner); in cancel_loop_tree()
1381 cancel_loop (loop); in cancel_loop_tree()
1406 class loop *loop; in verify_loop_structure() local
1460 FOR_EACH_LOOP (loop, LI_FROM_INNERMOST) in verify_loop_structure()
1464 if (loop->header == NULL) in verify_loop_structure()
1466 error ("removed loop %d in loop tree", loop->num); in verify_loop_structure()
1471 n = get_loop_body_with_size (loop, bbs, n_basic_blocks_for_fn (cfun)); in verify_loop_structure()
1472 if (loop->num_nodes != n) in verify_loop_structure()
1475 loop->num, n, loop->num_nodes); in verify_loop_structure()
1483 if (!flow_bb_inside_loop_p (loop, bb)) in verify_loop_structure()
1486 bb->index, loop->num); in verify_loop_structure()
1495 if (bb->loop_father != loop) in verify_loop_structure()
1498 bb->index, bb->loop_father->num, loop->num); in verify_loop_structure()
1506 FOR_EACH_LOOP (loop, 0) in verify_loop_structure()
1508 i = loop->num; in verify_loop_structure()
1509 if (loop->header == NULL) in verify_loop_structure()
1511 if (!bb_loop_header_p (loop->header)) in verify_loop_structure()
1517 && EDGE_COUNT (loop->header->preds) != 2) in verify_loop_structure()
1522 if (loop->latch) in verify_loop_structure()
1524 if (!find_edge (loop->latch, loop->header)) in verify_loop_structure()
1529 if (!dominated_by_p (CDI_DOMINATORS, loop->latch, loop->header)) in verify_loop_structure()
1537 if (!single_succ_p (loop->latch)) in verify_loop_structure()
1542 if (single_succ (loop->latch) != loop->header) in verify_loop_structure()
1547 if (loop->latch->loop_father != loop) in verify_loop_structure()
1553 if (loop->header->loop_father != loop) in verify_loop_structure()
1559 && (loop_latch_edge (loop)->flags & EDGE_IRREDUCIBLE_LOOP)) in verify_loop_structure()
1626 FOR_EACH_LOOP (loop, 0) in verify_loop_structure()
1628 if (!loop->exits || loop->exits->e != NULL) in verify_loop_structure()
1631 loop->num); in verify_loop_structure()
1638 for (mexit = loop->exits, exit = mexit->next, i = 0; in verify_loop_structure()
1646 if (exit != loop->exits) in verify_loop_structure()
1648 error ("corrupted exits list of loop %d", loop->num); in verify_loop_structure()
1655 if (loop->exits->next != loop->exits) in verify_loop_structure()
1658 loop->num); in verify_loop_structure()
1692 for (loop = bb->loop_father; in verify_loop_structure()
1693 loop != e->dest->loop_father in verify_loop_structure()
1698 && loop != loop_outer (e->dest->loop_father); in verify_loop_structure()
1699 loop = loop_outer (loop)) in verify_loop_structure()
1702 sizes[loop->num]++; in verify_loop_structure()
1720 FOR_EACH_LOOP (loop, 0) in verify_loop_structure()
1723 for (exit = loop->exits->next; exit->e; exit = exit->next) in verify_loop_structure()
1725 if (eloops != sizes[loop->num]) in verify_loop_structure()
1728 eloops, loop->num, sizes[loop->num]); in verify_loop_structure()
1748 loop_latch_edge (const class loop *loop) in loop_latch_edge() argument
1750 return find_edge (loop->latch, loop->header); in loop_latch_edge()
1755 loop_preheader_edge (const class loop *loop) in loop_preheader_edge() argument
1763 FOR_EACH_EDGE (e, ei, loop->header->preds) in loop_preheader_edge()
1764 if (e->src != loop->latch) in loop_preheader_edge()
1769 gcc_assert (! loop_outer (loop)); in loop_preheader_edge()
1779 loop_exit_edge_p (const class loop *loop, const_edge e) in loop_exit_edge_p() argument
1781 return (flow_bb_inside_loop_p (loop, e->src) in loop_exit_edge_p()
1782 && !flow_bb_inside_loop_p (loop, e->dest)); in loop_exit_edge_p()
1790 single_exit (const class loop *loop) in single_exit() argument
1792 struct loop_exit *exit = loop->exits->next; in single_exit()
1797 if (exit->e && exit->next == loop->exits) in single_exit()
1806 loop_exits_to_bb_p (class loop *loop, basic_block bb) in loop_exits_to_bb_p() argument
1812 if (loop_exit_edge_p (loop, e)) in loop_exits_to_bb_p()
1821 loop_exits_from_bb_p (class loop *loop, basic_block bb) in loop_exits_from_bb_p() argument
1827 if (loop_exit_edge_p (loop, e)) in loop_exits_from_bb_p()
1836 get_loop_location (class loop *loop) in get_loop_location() argument
1848 desc = get_simple_loop_desc (loop); in get_loop_location()
1859 if ((exit = single_exit (loop))) in get_loop_location()
1868 FOR_BB_INSNS_REVERSE (loop->latch, insn) in get_loop_location()
1875 FOR_BB_INSNS (loop->header, insn) in get_loop_location()
1890 record_niter_bound (class loop *loop, const widest_int &i_bound, in record_niter_bound() argument
1896 && (!loop->any_upper_bound in record_niter_bound()
1897 || wi::ltu_p (i_bound, loop->nb_iterations_upper_bound))) in record_niter_bound()
1899 loop->any_upper_bound = true; in record_niter_bound()
1900 loop->nb_iterations_upper_bound = i_bound; in record_niter_bound()
1901 if (!loop->any_likely_upper_bound) in record_niter_bound()
1903 loop->any_likely_upper_bound = true; in record_niter_bound()
1904 loop->nb_iterations_likely_upper_bound = i_bound; in record_niter_bound()
1908 && (!loop->any_estimate in record_niter_bound()
1909 || wi::ltu_p (i_bound, loop->nb_iterations_estimate))) in record_niter_bound()
1911 loop->any_estimate = true; in record_niter_bound()
1912 loop->nb_iterations_estimate = i_bound; in record_niter_bound()
1915 && (!loop->any_likely_upper_bound in record_niter_bound()
1916 || wi::ltu_p (i_bound, loop->nb_iterations_likely_upper_bound))) in record_niter_bound()
1918 loop->any_likely_upper_bound = true; in record_niter_bound()
1919 loop->nb_iterations_likely_upper_bound = i_bound; in record_niter_bound()
1924 if (loop->any_upper_bound in record_niter_bound()
1925 && loop->any_estimate in record_niter_bound()
1926 && wi::ltu_p (loop->nb_iterations_upper_bound, in record_niter_bound()
1927 loop->nb_iterations_estimate)) in record_niter_bound()
1928 loop->nb_iterations_estimate = loop->nb_iterations_upper_bound; in record_niter_bound()
1929 if (loop->any_upper_bound in record_niter_bound()
1930 && loop->any_likely_upper_bound in record_niter_bound()
1931 && wi::ltu_p (loop->nb_iterations_upper_bound, in record_niter_bound()
1932 loop->nb_iterations_likely_upper_bound)) in record_niter_bound()
1933 loop->nb_iterations_likely_upper_bound = loop->nb_iterations_upper_bound; in record_niter_bound()
1941 get_estimated_loop_iterations_int (class loop *loop) in get_estimated_loop_iterations_int() argument
1946 if (!get_estimated_loop_iterations (loop, &nit)) in get_estimated_loop_iterations_int()
1961 max_stmt_executions_int (class loop *loop) in max_stmt_executions_int() argument
1963 HOST_WIDE_INT nit = get_max_loop_iterations_int (loop); in max_stmt_executions_int()
1980 likely_max_stmt_executions_int (class loop *loop) in likely_max_stmt_executions_int() argument
1982 HOST_WIDE_INT nit = get_likely_max_loop_iterations_int (loop); in likely_max_stmt_executions_int()
1999 get_estimated_loop_iterations (class loop *loop, widest_int *nit) in get_estimated_loop_iterations() argument
2003 if (!loop->any_estimate) in get_estimated_loop_iterations()
2005 if (loop->header->count.reliable_p ()) in get_estimated_loop_iterations()
2008 (expected_loop_iterations_unbounded (loop) + 1); in get_estimated_loop_iterations()
2014 *nit = loop->nb_iterations_estimate; in get_estimated_loop_iterations()
2023 get_max_loop_iterations (const class loop *loop, widest_int *nit) in get_max_loop_iterations() argument
2025 if (!loop->any_upper_bound) in get_max_loop_iterations()
2028 *nit = loop->nb_iterations_upper_bound; in get_max_loop_iterations()
2037 get_max_loop_iterations_int (const class loop *loop) in get_max_loop_iterations_int() argument
2042 if (!get_max_loop_iterations (loop, &nit)) in get_max_loop_iterations_int()
2057 get_likely_max_loop_iterations (class loop *loop, widest_int *nit) in get_likely_max_loop_iterations() argument
2059 if (!loop->any_likely_upper_bound) in get_likely_max_loop_iterations()
2062 *nit = loop->nb_iterations_likely_upper_bound; in get_likely_max_loop_iterations()
2071 get_likely_max_loop_iterations_int (class loop *loop) in get_likely_max_loop_iterations_int() argument
2076 if (!get_likely_max_loop_iterations (loop, &nit)) in get_likely_max_loop_iterations_int()
2097 mark_loop_for_removal (loop_p loop) in mark_loop_for_removal() argument
2099 if (loop->header == NULL) in mark_loop_for_removal()
2101 loop->former_header = loop->header; in mark_loop_for_removal()
2102 loop->header = NULL; in mark_loop_for_removal()
2103 loop->latch = NULL; in mark_loop_for_removal()