]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
vect: release defs of removed statement
authorAndrew Pinski <quic_apinski@quicinc.com>
Sat, 14 Sep 2024 03:27:32 +0000 (20:27 -0700)
committerAndrew Pinski <quic_apinski@quicinc.com>
Sun, 15 Sep 2024 05:51:15 +0000 (22:51 -0700)
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>
gcc/tree-vect-loop.cc

index cc15492f6a01328f62bffcb6d060c201555e8ddd..62c7f90779fa89ad312c34137f025657d3f2d4e8 100644 (file)
@@ -12803,6 +12803,7 @@ optimize_mask_stores (class loop *loop)
                  if (has_zero_uses (lhs))
                    {
                      gsi_remove (&gsi_from, true);
+                     release_defs (stmt1);
                      continue;
                    }
                }