diff options
author | Andrea Corallo <andrea.corallo@arm.com> | 2020-09-07 13:45:47 +0100 |
---|---|---|
committer | Andrea Corallo <andrea.corallo@arm.com> | 2020-09-07 19:49:25 +0200 |
commit | e147bb0faad95ed8699c426484ed3dd026fd3366 (patch) | |
tree | 8301d707166fa002211c4c24318f51a4a41ca17a /gcc | |
parent | 016b190036437f7a357f0a3ce5281fd70620a1a5 (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/tree-vect-loop.c | 17 |
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 { |