aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorAndrea Corallo <andrea.corallo@arm.com>2020-09-07 13:45:47 +0100
committerAndrea Corallo <andrea.corallo@arm.com>2020-09-07 19:49:25 +0200
commite147bb0faad95ed8699c426484ed3dd026fd3366 (patch)
tree8301d707166fa002211c4c24318f51a4a41ca17a /gcc/tree-vect-loop.c
parent016b190036437f7a357f0a3ce5281fd70620a1a5 (diff)
downloadgcc-e147bb0faad95ed8699c426484ed3dd026fd3366.zip
gcc-e147bb0faad95ed8699c426484ed3dd026fd3366.tar.gz
gcc-e147bb0faad95ed8699c426484ed3dd026fd3366.tar.bz2
vec: Revert "dead code removal in tree-vect-loop.c" and add a comment.
gcc/ChangeLog 2020-09-07 Andrea Corallo <andrea.corallo@arm.com> * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert dead-code removal introduced by 09fa6acd8d9 + add a comment to clarify.
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index a0c3c5c..80e78f7 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -4089,6 +4089,8 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo,
if (vec_outside_cost <= 0)
min_profitable_estimate = 0;
+ /* ??? This "else if" arm is written to handle all cases; see below for
+ what we would do for !LOOP_VINFO_USING_PARTIAL_VECTORS_P. */
else if (LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo))
{
/* This is a repeat of the code above, but with + SOC rather
@@ -4101,10 +4103,17 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo,
if (outside_overhead > 0)
min_vec_niters = outside_overhead / saving_per_viter + 1;
- int threshold = (vec_inside_cost * min_vec_niters
- + vec_outside_cost
- + scalar_outside_cost);
- min_profitable_estimate = threshold / scalar_single_iter_cost + 1;
+ if (LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo))
+ {
+ int threshold = (vec_inside_cost * min_vec_niters
+ + vec_outside_cost
+ + scalar_outside_cost);
+ min_profitable_estimate = threshold / scalar_single_iter_cost + 1;
+ }
+ else
+ min_profitable_estimate = (min_vec_niters * assumed_vf
+ + peel_iters_prologue
+ + peel_iters_epilogue);
}
else
{