From: Richard Biener Date: Tue, 29 Oct 2024 10:26:13 +0000 (+0100) Subject: tree-optimization/117343 - decide_masked_load_lanes and stale graph X-Git-Tag: basepoints/gcc-16~4815 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9999cc79e9866ba33dea0256078f4557d92d80d9;p=thirdparty%2Fgcc.git 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 --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 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); }