https://gcc.gnu.org/g:9999cc79e9866ba33dea0256078f4557d92d80d9
commit r15-4738-g9999cc79e9866ba33dea0256078f4557d92d80d9 Author: Richard Biener <rguent...@suse.de> Date: Tue Oct 29 11:26:13 2024 +0100 tree-optimization/117343 - decide_masked_load_lanes and stale graph It turns out decide_masked_load_lanes accesses a stale SLP graph so the following re-builds it instead. PR tree-optimization/117343 * tree-vect-slp.cc (vect_optimize_slp_pass::build_vertices): Support re-building the SLP graph. (vect_optimize_slp_pass::run): Re-build the SLP graph before decide_masked_load_lanes. Diff: --- gcc/tree-vect-slp.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index 2e98a943e061..a7f064bb0edf 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -5632,6 +5632,8 @@ vect_optimize_slp_pass::build_vertices () hash_set<slp_tree> visited; unsigned i; slp_instance instance; + m_vertices.truncate (0); + m_leafs.truncate (0); FOR_EACH_VEC_ELT (m_vinfo->slp_instances, i, instance) build_vertices (visited, SLP_INSTANCE_TREE (instance)); } @@ -7244,6 +7246,8 @@ vect_optimize_slp_pass::run () } else remove_redundant_permutations (); + free_graph (m_slpg); + build_graph (); decide_masked_load_lanes (); free_graph (m_slpg); }