diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-11-22 00:54:16 +0100 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-11-21 23:54:16 +0000 |
commit | ac8f6c69032b9a07b3036a2514bd59353b2a32c3 (patch) | |
tree | bf6b0974fc31405c052970da079d8c6c75d72a63 /gcc/tree-vect-transform.c | |
parent | bf8dbe38637ce885c1b7af763f7728955083195e (diff) | |
download | gcc-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/tree-vect-transform.c')
-rw-r--r-- | gcc/tree-vect-transform.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 6091575..b57208e 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -995,9 +995,9 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, /* 2.1 Create new loop-exit-phi to preserve loop-closed form: v_out1 = phi <v_loop> */ - exit_bb = loop->single_exit->dest; + exit_bb = single_exit (loop)->dest; new_phi = create_phi_node (SSA_NAME_VAR (vect_def), exit_bb); - SET_PHI_ARG_DEF (new_phi, loop->single_exit->dest_idx, vect_def); + SET_PHI_ARG_DEF (new_phi, single_exit (loop)->dest_idx, vect_def); exit_bsi = bsi_start (exit_bb); /* 2.2 Get the relevant tree-code to use in the epilog for schemes 2,3 @@ -3325,7 +3325,7 @@ vect_update_ivs_after_vectorizer (loop_vec_info loop_vinfo, tree niters, edge update_e) { struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); - basic_block exit_bb = loop->single_exit->dest; + basic_block exit_bb = single_exit (loop)->dest; tree phi, phi1; basic_block update_bb = update_e->dest; @@ -3436,7 +3436,7 @@ vect_do_peeling_for_loop_bound (loop_vec_info loop_vinfo, tree *ratio, &ratio_mult_vf_name, ratio); loop_num = loop->num; - new_loop = slpeel_tree_peel_loop_to_edge (loop, loops, loop->single_exit, + new_loop = slpeel_tree_peel_loop_to_edge (loop, loops, single_exit (loop), ratio_mult_vf_name, ni_name, false); gcc_assert (new_loop); gcc_assert (loop_num == loop->num); @@ -3451,7 +3451,7 @@ vect_do_peeling_for_loop_bound (loop_vec_info loop_vinfo, tree *ratio, is on the path where the LOOP IVs are used and need to be updated. */ preheader = loop_preheader_edge (new_loop)->src; - if (EDGE_PRED (preheader, 0)->src == loop->single_exit->dest) + if (EDGE_PRED (preheader, 0)->src == single_exit (loop)->dest) update_e = EDGE_PRED (preheader, 0); else update_e = EDGE_PRED (preheader, 1); @@ -3842,10 +3842,10 @@ vect_transform_loop (loop_vec_info loop_vinfo, here by adding a new (empty) block on the exit-edge of the loop, with the proper loop-exit phis to maintain loop-closed-form. **/ - merge_bb = loop->single_exit->dest; + merge_bb = single_exit (loop)->dest; gcc_assert (EDGE_COUNT (merge_bb->preds) == 2); - new_exit_bb = split_edge (loop->single_exit); - new_exit_e = loop->single_exit; + new_exit_bb = split_edge (single_exit (loop)); + new_exit_e = single_exit (loop); e = EDGE_SUCC (new_exit_bb, 0); for (orig_phi = phi_nodes (merge_bb); orig_phi; |