diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2024-09-13 20:27:32 -0700 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2024-09-14 22:51:15 -0700 |
commit | 0b3133572edbd2b382e160ac78d7caf321f7f05b (patch) | |
tree | 9f2e77ffc38ea7f0f409670a8347ed5e4169c242 | |
parent | d2f10fc934c3a425cf31979b1cf41fdc0f57c6d6 (diff) | |
download | gcc-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.cc | 1 |
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; } } |