aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop-manip.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-04-24 11:25:21 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-04-24 11:25:21 +0000
commit7d5a99f479cb1b7237e64e2b3937e5285693911f (patch)
treeef4ce734b1b35a32eb1982cd3731b00d43efd4bd /gcc/tree-vect-loop-manip.c
parentc1041240bf5e2e2b6bd5a6c285fee5c943c8b852 (diff)
downloadgcc-7d5a99f479cb1b7237e64e2b3937e5285693911f.zip
gcc-7d5a99f479cb1b7237e64e2b3937e5285693911f.tar.gz
gcc-7d5a99f479cb1b7237e64e2b3937e5285693911f.tar.bz2
tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If the epilogue loop is not re-used as unvectorized version record the its...
2012-04-24 Richard Guenther <rguenther@suse.de> * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If the epilogue loop is not re-used as unvectorized version record the its maximum number of iterations. From-SVN: r186760
Diffstat (limited to 'gcc/tree-vect-loop-manip.c')
-rw-r--r--gcc/tree-vect-loop-manip.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index 32f57fe..5e5d6ef 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -1966,6 +1966,16 @@ vect_do_peeling_for_loop_bound (loop_vec_info loop_vinfo, tree *ratio,
by ratio_mult_vf_name steps. */
vect_update_ivs_after_vectorizer (loop_vinfo, ratio_mult_vf_name, update_e);
+ if (!LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo)
+ && !LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo))
+ {
+ int max_iter = MAX (LOOP_VINFO_VECT_FACTOR (loop_vinfo) - 1, (int) th);
+ record_niter_bound (new_loop, shwi_to_double_int (max_iter), false, true);
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "Setting upper bound of nb iterations for epilogue "
+ "loop to %d\n", max_iter);
+ }
+
/* After peeling we have to reset scalar evolution analyzer. */
scev_reset ();