https://gcc.gnu.org/g:48a0f6937d7c1faadf16f5ff7bd227a8392ddfe8

commit r15-3661-g48a0f6937d7c1faadf16f5ff7bd227a8392ddfe8
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Sun Sep 15 16:43:24 2024 -0700

    vect: Set pattern_stmt_p on the newly created stmt_vec_info
    
    While adding simple_dce_worklist to the vectorizer, there was a regression
    due to the slp patterns would create a SSA name but never free it even if it
    never existed in the IR (this case as addsub but complex ones had the same 
issue).
    The reason why it was never freed was the stmt_vec_info was not marked as a 
pattern stmt,
    unlike the other pattern stmts that use vect_init_pattern_stmt instead of 
vec_info::add_pattern_stmt
    (which is used for SLP patterns).
    
    Bootstrapped and tested on x86_64-linux-gnu.
    
    gcc/ChangeLog:
    
            * tree-vectorizer.cc (vec_info::add_pattern_stmt): Set 
pattern_stmt_p.
    
    Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>

Diff:
---
 gcc/tree-vectorizer.cc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc
index 0efabcbb2580..4279b6db4cfc 100644
--- a/gcc/tree-vectorizer.cc
+++ b/gcc/tree-vectorizer.cc
@@ -535,6 +535,7 @@ stmt_vec_info
 vec_info::add_pattern_stmt (gimple *stmt, stmt_vec_info stmt_info)
 {
   stmt_vec_info res = new_stmt_vec_info (stmt);
+  res->pattern_stmt_p = true;
   set_vinfo_for_stmt (stmt, res, false);
   STMT_VINFO_RELATED_STMT (res) = stmt_info;
   return res;

Reply via email to