[gcc r15-1670] tree-optimization/115652 - amend last fix

Richard Biener rguenth@gcc.gnu.org
Thu Jun 27 05:53:48 GMT 2024


https://gcc.gnu.org/g:c7cb0dd94589ab501bca27f93641b4074e5a2e99

commit r15-1670-gc7cb0dd94589ab501bca27f93641b4074e5a2e99
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jun 26 19:23:26 2024 +0200

    tree-optimization/115652 - amend last fix
    
    The previous fix breaks in the degenerate case when the discovered
    last_stmt is equal to the first stmt in the block since then we
    undo a required stmt advancement.
    
            PR tree-optimization/115652
            * tree-vect-slp.cc (vect_schedule_slp_node): Only insert
            at the start of the block if that strictly dominates
            the discovered dependent stmt.

Diff:
---
 gcc/tree-vect-slp.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index 1f5b3fccf41..1252b613125 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -9747,7 +9747,8 @@ vect_schedule_slp_node (vec_info *vinfo,
 	      {
 		gimple_stmt_iterator si2
 		  = gsi_after_labels (LOOP_VINFO_LOOP (loop_vinfo)->header);
-		if (vect_stmt_dominates_stmt_p (last_stmt, *si2))
+		if (last_stmt != *si2
+		    && vect_stmt_dominates_stmt_p (last_stmt, *si2))
 		  si = si2;
 	      }
 	}


More information about the Gcc-cvs mailing list