From: Tamar Christina Date: Fri, 20 Oct 2023 13:58:39 +0000 (+0100) Subject: middle-end: don't pass loop_vinfo to vect_set_loop_condition during prolog peeling X-Git-Tag: basepoints/gcc-15~5347 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb15fad3190a8b33e3e451b964ff1ecf08bbb113;p=thirdparty%2Fgcc.git middle-end: don't pass loop_vinfo to vect_set_loop_condition during prolog peeling During the refactoring I had passed loop_vinfo on to vect_set_loop_condition during prolog peeling. This parameter is unused in most cases except for in vect_set_loop_condition_partial_vectors where it's behaviour depends on whether loop_vinfo is NULL or not. Apparently this code expect it to be NULL and it reads the structures from a different location. This fixes the failing testcase which was not using the lens values determined earlier in vectorizable_store because it was looking it up in the given loop_vinfo instead. gcc/ChangeLog: PR tree-optimization/111866 * tree-vect-loop-manip.cc (vect_do_peeling): Pass null as vinfo to vect_set_loop_condition during prolog peeling. --- diff --git a/gcc/tree-vect-loop-manip.cc b/gcc/tree-vect-loop-manip.cc index db1d4f867ead..9c2551261e33 100644 --- a/gcc/tree-vect-loop-manip.cc +++ b/gcc/tree-vect-loop-manip.cc @@ -3235,7 +3235,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1, /* Update the number of iterations for prolog loop. */ tree step_prolog = build_one_cst (TREE_TYPE (niters_prolog)); - vect_set_loop_condition (prolog, prolog_e, loop_vinfo, niters_prolog, + vect_set_loop_condition (prolog, prolog_e, NULL, niters_prolog, step_prolog, NULL_TREE, false); /* Skip the prolog loop. */