aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2024-09-13 20:27:32 -0700
committerAndrew Pinski <quic_apinski@quicinc.com>2024-09-14 22:51:15 -0700
commit0b3133572edbd2b382e160ac78d7caf321f7f05b (patch)
tree9f2e77ffc38ea7f0f409670a8347ed5e4169c242
parentd2f10fc934c3a425cf31979b1cf41fdc0f57c6d6 (diff)
downloadgcc-0b3133572edbd2b382e160ac78d7caf321f7f05b.zip
gcc-0b3133572edbd2b382e160ac78d7caf321f7f05b.tar.gz
gcc-0b3133572edbd2b382e160ac78d7caf321f7f05b.tar.bz2
vect: release defs of removed statement
While trying to add use of simple_dce_from_worklist to the vectorizer so we don't need to run a full blown DCE pass after the vectorizer, there was a crash noticed due to a ssa name which has a stmt without a bb. This was due to not calling release_defs after the call to gsi_remove. Note the code to remove zero use statements should be able to remove once the use of simple_dce_from_worklist has been added. But in the meantime, fixing this bug will also improve memory usage and a few other things which look through all ssa names. gcc/ChangeLog: * tree-vect-loop.cc (optimize_mask_stores): Call release_defs after the call to gsi_remove with last argument of true. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
-rw-r--r--gcc/tree-vect-loop.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index cc15492..62c7f90 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -12803,6 +12803,7 @@ optimize_mask_stores (class loop *loop)
if (has_zero_uses (lhs))
{
gsi_remove (&gsi_from, true);
+ release_defs (stmt1);
continue;
}
}