Andrea Corallo <andrea.cora...@arm.com> writes: > Hi Richard, > > this reverts the discussed patch and adds what was suggested as a > comment. > > Apologies for the inconvenience, okay for trunk?
OK, thanks! And sorry for not commenting/documenting this very well. Richard > > Thanks > > Andrea > > From 84dfa2d461692f445f45b3c3498f9bedba5c3848 Mon Sep 17 00:00:00 2001 > From: Andrea Corallo <andrea.cora...@arm.com> > Date: Mon, 7 Sep 2020 13:45:47 +0100 > Subject: [PATCH] vec: Revert "dead code removal in tree-vect-loop.c" and add a > comment. > > gcc/ChangeLog > > 2020-09-07 Andrea Corallo <andrea.cora...@arm.com> > > * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert > dead-code removal introduced by 09fa6acd8d9 + add a comment to > clarify. > --- > 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 9a82573604b..5ba4e594df9 100644 > --- a/gcc/tree-vect-loop.c > +++ b/gcc/tree-vect-loop.c > @@ -4103,6 +4103,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 > @@ -4115,10 +4117,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 > {