[gcc r15-1709] tree-optimization/115652 - more fixing of the fix
Richard Biener
rguenth@gcc.gnu.org
Fri Jun 28 12:50:25 GMT 2024
https://gcc.gnu.org/g:ff6e8b7f09712bd7ddfcd2830b286421f23abef9
commit r15-1709-gff6e8b7f09712bd7ddfcd2830b286421f23abef9
Author: Richard Biener <rguenther@suse.de>
Date: Fri Jun 28 13:29:21 2024 +0200
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:
---
gcc/tree-vect-slp.cc | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
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;
}
}
More information about the Gcc-cvs
mailing list