From: Richard Biener Date: Fri, 28 Jun 2024 11:29:21 +0000 (+0200) Subject: tree-optimization/115652 - more fixing of the fix X-Git-Tag: basepoints/gcc-16~7844 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff6e8b7f09712bd7ddfcd2830b286421f23abef9;p=thirdparty%2Fgcc.git tree-optimization/115652 - more fixing of the fix The following addresses the corner case of an outer loop with an empty header where we end up asking for the BB of a NULL stmt by special-casing this case. PR tree-optimization/115652 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the case where the outer loop header block is empty. --- diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index 174b4800fa9..dd9017e5b3a 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -9750,8 +9750,15 @@ vect_schedule_slp_node (vec_info *vinfo, { gimple_stmt_iterator si2 = gsi_after_labels (LOOP_VINFO_LOOP (loop_vinfo)->header); - if (last_stmt != *si2 - && vect_stmt_dominates_stmt_p (last_stmt, *si2)) + if ((gsi_end_p (si2) + && (LOOP_VINFO_LOOP (loop_vinfo)->header + != gimple_bb (last_stmt)) + && dominated_by_p (CDI_DOMINATORS, + LOOP_VINFO_LOOP (loop_vinfo)->header, + gimple_bb (last_stmt))) + || (!gsi_end_p (si2) + && last_stmt != *si2 + && vect_stmt_dominates_stmt_p (last_stmt, *si2))) si = si2; } }