aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloop.h
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2006-11-22 00:54:16 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2006-11-21 23:54:16 +0000
commitac8f6c69032b9a07b3036a2514bd59353b2a32c3 (patch)
treebf6b0974fc31405c052970da079d8c6c75d72a63 /gcc/cfgloop.h
parentbf8dbe38637ce885c1b7af763f7728955083195e (diff)
downloadgcc-ac8f6c69032b9a07b3036a2514bd59353b2a32c3.zip
gcc-ac8f6c69032b9a07b3036a2514bd59353b2a32c3.tar.gz
gcc-ac8f6c69032b9a07b3036a2514bd59353b2a32c3.tar.bz2
tree-loop-linear.c (linear_transform_loops): Use single_exit accessor functions.
* tree-loop-linear.c (linear_transform_loops): Use single_exit accessor functions. * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto. * cfgloopmanip.c (update_single_exits_after_duplication, update_single_exit_for_duplicated_loop, loop_version): Ditto. * tree-scalar-evolution.c (get_loop_exit_condition, get_exit_conditions_rec, loop_closed_phi_def, number_of_iterations_in_loop, scev_const_prop): Ditto. * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto. * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule): Ditto. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Ditto. * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop, slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes, slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge): Ditto. * tree-if-conv.c (if_convertible_loop_p): Ditto. * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p, vect_analyze_loop_form): Ditto. * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p, can_convert_to_perfect_nest, perfect_nestify): Ditto. * tree-vect-transform.c (vect_create_epilog_for_reduction, vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound, vect_transform_loop): Ditto. * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto. (single_exit, set_single_exit): New functions. * cfgloop.h (struct loop): Rename single_exit field to single_exit_. (single_exit, set_single_exit): Declare. * doc/loop.texi: Undocument single_exit field. Document single_exit accessor function. From-SVN: r119075
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r--gcc/cfgloop.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index 0874f54..aa648c2 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -143,8 +143,9 @@ struct loop
struct nb_iter_bound *bounds;
/* If not NULL, loop has just single exit edge stored here (edges to the
- EXIT_BLOCK_PTR do not count. */
- edge single_exit;
+ EXIT_BLOCK_PTR do not count. Do not use direcly, this field should
+ only be accessed via single_exit/set_single_exit functions. */
+ edge single_exit_;
/* True when the loop does not carry data dependences, and
consequently the iterations can be executed in any order. False
@@ -219,6 +220,8 @@ extern basic_block *get_loop_body (const struct loop *);
extern basic_block *get_loop_body_in_dom_order (const struct loop *);
extern basic_block *get_loop_body_in_bfs_order (const struct loop *);
extern VEC (edge, heap) *get_loop_exit_edges (const struct loop *);
+edge single_exit (const struct loop *);
+void set_single_exit (struct loop *, edge);
extern unsigned num_loop_branches (const struct loop *);
extern edge loop_preheader_edge (const struct loop *);