https://gcc.gnu.org/g:6b597bdb72177699178e238e3da713dc222a0eeb
commit 6b597bdb72177699178e238e3da713dc222a0eeb Author: Richard Biener <rguent...@suse.de> Date: Fri Sep 29 13:05:01 2023 +0200 Allow bigger SLP graphs When doing single-lane SLP discovery only we're easily running into the SLP graph size limit when patterns are involved. The following ups the limit from the number of scalar stmts to the number of scalar or pattern stmts by using the number of stmt_vec_infos created. * tree-vect-loop.cc (vect_analyze_loop_2): Use the number of stmt_vec_infos created to limit the SLP graph size. Diff: --- gcc/tree-vect-loop.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index 361aec064884..7eeae908d367 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -2855,8 +2855,10 @@ vect_analyze_loop_2 (loop_vec_info loop_vinfo, bool &fatal, if (slp) { /* Check the SLP opportunities in the loop, analyze and build - SLP trees. */ - ok = vect_analyze_slp (loop_vinfo, LOOP_VINFO_N_STMTS (loop_vinfo)); + SLP trees. Use the number of stmt_vec_infos as graph limit + since that also includes pattern stmts which LOOP_VINFO_N_STMTS + does not. */ + ok = vect_analyze_slp (loop_vinfo, loop_vinfo->stmt_vec_infos.length ()); if (!ok) return ok;