[gcc r11-3038] vec: Revert "dead code removal in tree-vect-loop.c" and add a comment.
Andrea Corallo
akrl@gcc.gnu.org
Mon Sep 7 17:50:48 GMT 2020
https://gcc.gnu.org/g:e147bb0faad95ed8699c426484ed3dd026fd3366
commit r11-3038-ge147bb0faad95ed8699c426484ed3dd026fd3366
Author: Andrea Corallo <andrea.corallo@arm.com>
Date: Mon Sep 7 13:45:47 2020 +0100
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.
Diff:
---
gcc/tree-vect-loop.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index a0c3c5cc858..80e78f7adf4 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
{
More information about the Gcc-cvs
mailing list