From: Richard Biener Date: Tue, 14 Nov 2023 11:53:18 +0000 (+0100) Subject: Loop distribution fix for SCC detection X-Git-Tag: basepoints/gcc-15~4694 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bc390ae72ff974d6985639b5b392f6e9192c2ee7;p=thirdparty%2Fgcc.git Loop distribution fix for SCC detection The following adjusts data_dep_in_cycle_p to properly consider the whole loop nest when looking for data dep cycles and exempting zero-distance DDRs instead of just the outermost loop. * tree-loop-distribution.cc (loop_distribution::data_dep_in_cycle_p): Consider all loops in the nest when looking for lambda_vector_zerop. --- diff --git a/gcc/tree-loop-distribution.cc b/gcc/tree-loop-distribution.cc index 8e92af61c57f..5ededd97c3d6 100644 --- a/gcc/tree-loop-distribution.cc +++ b/gcc/tree-loop-distribution.cc @@ -1440,7 +1440,7 @@ loop_distribution::data_dep_in_cycle_p (struct graph *rdg, else if (DDR_NUM_DIST_VECTS (ddr) > 1) return true; else if (DDR_REVERSED_P (ddr) - || lambda_vector_zerop (DDR_DIST_VECT (ddr, 0), 1)) + || lambda_vector_zerop (DDR_DIST_VECT (ddr, 0), DDR_NB_LOOPS (ddr))) return false; return true;