summaryrefslogtreecommitdiff
path: root/gcc/tree-scalar-evolution.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-21 14:09:15 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-21 14:09:15 +0000
commit313a5120812d283561c66f25bdd85085585810d4 (patch)
tree0586a0be8d7ce253c92bf4eab57e92b0dd307936 /gcc/tree-scalar-evolution.c
parent36f39b2ec4a674f9ee67eb3d9dba62da3d7641ad (diff)
downloadgcc-313a5120812d283561c66f25bdd85085585810d4.tar.gz
2013-11-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/59058 * tree-scalar-evolution.h (number_of_exit_cond_executions): Remove. * tree-scalar-evolution.c (number_of_exit_cond_executions): Likewise. * tree-vectorizer.h (LOOP_PEELING_FOR_ALIGNMENT): Rename to ... (LOOP_VINFO_PEELING_FOR_ALIGNMENT): ... this. (NITERS_KNOWN_P): Fold into ... (LOOP_VINFO_NITERS_KNOWN_P): ... this. (LOOP_VINFO_PEELING_FOR_NITER): Add. * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Use LOOP_VINFO_PEELING_FOR_ALIGNMENT. (vect_do_peeling_for_alignment): Re-use precomputed niter instead of re-emitting it. * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use LOOP_VINFO_PEELING_FOR_ALIGNMENT. * tree-vect-loop.c (vect_get_loop_niters): Use number_of_latch_executions. (new_loop_vec_info): Initialize LOOP_VINFO_PEELING_FOR_NITER. (vect_analyze_loop_form): Simplify. (vect_analyze_loop_operations): Move epilogue peeling code ... (vect_analyze_loop_2): ... here and adjust it to compute LOOP_VINFO_PEELING_FOR_NITER. (vect_estimate_min_profitable_iters): Use LOOP_VINFO_PEELING_FOR_ALIGNMENT. (vect_build_loop_niters): Emit on the preheader. (vect_generate_tmps_on_preheader): Likewise. (vect_transform_loop): Use LOOP_VINFO_PEELING_FOR_NITER instead of recomputing it. Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205217 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-scalar-evolution.c')
-rw-r--r--gcc/tree-scalar-evolution.c28
1 files changed, 0 insertions, 28 deletions
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index 0c1f1dfbb1a..de05f644b0e 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -2910,34 +2910,6 @@ number_of_latch_executions (struct loop *loop)
loop->nb_iterations = res;
return res;
}
-
-/* Returns the number of executions of the exit condition of LOOP,
- i.e., the number by one higher than number_of_latch_executions.
- Note that unlike number_of_latch_executions, this number does
- not necessarily fit in the unsigned variant of the type of
- the control variable -- if the number of iterations is a constant,
- we return chrec_dont_know if adding one to number_of_latch_executions
- overflows; however, in case the number of iterations is symbolic
- expression, the caller is responsible for dealing with this
- the possible overflow. */
-
-tree
-number_of_exit_cond_executions (struct loop *loop)
-{
- tree ret = number_of_latch_executions (loop);
- tree type = chrec_type (ret);
-
- if (chrec_contains_undetermined (ret))
- return ret;
-
- ret = chrec_fold_plus (type, ret, build_int_cst (type, 1));
- if (TREE_CODE (ret) == INTEGER_CST
- && TREE_OVERFLOW (ret))
- return chrec_dont_know;
-
- return ret;
-}
-
/* Counters for the stats. */