]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Loop distribution fix for SCC detection
authorRichard Biener <rguenther@suse.de>
Tue, 14 Nov 2023 11:53:18 +0000 (12:53 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 14 Nov 2023 12:44:56 +0000 (13:44 +0100)
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.

gcc/tree-loop-distribution.cc

index 8e92af61c57f6a6f1b123fb0cf3a37b197c297db..5ededd97c3d693ac5862d325a195ac173904a4b3 100644 (file)
@@ -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;