From: Richard Biener Date: Tue, 10 Mar 2026 13:36:24 +0000 (+0100) Subject: Use scalar_costs in vect_get_known_peeling_cost X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=39eac69cd3afabaeaf70fed19722bf049eac9819;p=thirdparty%2Fgcc.git Use scalar_costs in vect_get_known_peeling_cost The following makes us use the scalar_costs summary when computing the peeling cost part comparing different peelings for alignment. That gets rid of repeated walks of LOOP_VINFO_SCALAR_ITERATION_COST and the fallback to builtin_vectorization_cost. * tree-vect-loop.cc (vect_get_known_peeling_cost): Use scalar_costs instead of guesstimating it. --- diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index cc40f43c252..94f3d00d60e 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -3943,16 +3943,10 @@ vect_get_known_peeling_cost (loop_vec_info loop_vinfo, int peel_iters_prologue) retval += builtin_vectorization_cost (cond_branch_taken, NULL_TREE, 0); } - stmt_info_for_cost *si; - int j; - if (peel_iters_prologue) - FOR_EACH_VEC_ELT (LOOP_VINFO_SCALAR_ITERATION_COST (loop_vinfo), j, si) - retval += (builtin_vectorization_cost (si->kind, NULL_TREE, si->misalign) - * peel_iters_prologue); - if (peel_iters_epilogue) - FOR_EACH_VEC_ELT (LOOP_VINFO_SCALAR_ITERATION_COST (loop_vinfo), j, si) - retval += (builtin_vectorization_cost (si->kind, NULL_TREE, si->misalign) - * peel_iters_epilogue); + retval += ((peel_iters_prologue + peel_iters_epilogue) + * loop_vinfo->scalar_costs->body_cost ()); + retval += (((peel_iters_prologue != 0) + (peel_iters_epilogue != 0)) + * loop_vinfo->scalar_costs->outside_cost ()); return retval; }