This removes the non-SLP path from vectorizable_simd_clone_call and
the then unused simd_clone_info from the stmt_vec_info structure.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

Will squash and push if that succeeds.

        * tree-vectorizer.h (_stmt_vec_info::simd_clone_info): Remove.
        (STMT_VINFO_SIMD_CLONE_INFO): Likewise.
        * tree-vectorizer.cc (vec_info::free_stmt_vec_info): Do not
        release it.
        * tree-vect-stmts.cc (vectorizable_simd_clone_call): Remove
        non-SLP path.
---
 gcc/tree-vect-stmts.cc | 4 ++--
 gcc/tree-vectorizer.cc | 1 -
 gcc/tree-vectorizer.h  | 6 ------
 3 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 3f9edb79479..cef513c9fab 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -4005,7 +4005,7 @@ vectorizable_simd_clone_call (vec_info *vinfo, 
stmt_vec_info stmt_info,
 
   gcc_checking_assert (!stmt_can_throw_internal (cfun, stmt));
 
-  vectype = STMT_VINFO_VECTYPE (stmt_info);
+  vectype = SLP_TREE_VECTYPE (slp_node);
 
   if (loop_vinfo && nested_in_vect_loop_p (loop, stmt_info))
     return false;
@@ -4152,7 +4152,7 @@ vectorizable_simd_clone_call (vec_info *vinfo, 
stmt_vec_info stmt_info,
        if (n->simdclone->inbranch)
          this_badness += 8192;
 
-       /* If STMT_VINFO_VECTYPE has not been set yet pass the general vector
+       /* If SLP_TREE_VECTYPE has not been set yet pass the general vector
           mode,  which for targets that use it will determine what ISA we can
           vectorize this code with.  */
        machine_mode vector_mode = vinfo->vector_mode;
diff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc
index 843f4dfb513..2f59fc54e4d 100644
--- a/gcc/tree-vectorizer.cc
+++ b/gcc/tree-vectorizer.cc
@@ -790,7 +790,6 @@ vec_info::free_stmt_vec_info (stmt_vec_info stmt_info)
 
   stmt_info->reduc_initial_values.release ();
   stmt_info->reduc_scalar_results.release ();
-  STMT_VINFO_SIMD_CLONE_INFO (stmt_info).release ();
   STMT_VINFO_VEC_STMTS (stmt_info).release ();
   free (stmt_info);
 }
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index ddf31e7b0ee..9df4387a95a 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -1400,11 +1400,6 @@ public:
      pattern statement.  */
   gimple_seq pattern_def_seq;
 
-  /* Selected SIMD clone's function info.  First vector element
-     is SIMD clone's function decl, followed by a pair of trees (base + step)
-     for linear arguments (pair of NULLs for other arguments).  */
-  vec<tree> simd_clone_info;
-
   /* Classify the def of this stmt.  */
   enum vect_def_type def_type;
 
@@ -1616,7 +1611,6 @@ struct gather_scatter_info {
 #define STMT_VINFO_IN_PATTERN_P(S)         (S)->in_pattern_p
 #define STMT_VINFO_RELATED_STMT(S)         (S)->related_stmt
 #define STMT_VINFO_PATTERN_DEF_SEQ(S)      (S)->pattern_def_seq
-#define STMT_VINFO_SIMD_CLONE_INFO(S)     (S)->simd_clone_info
 #define STMT_VINFO_DEF_TYPE(S)             (S)->def_type
 #define STMT_VINFO_GROUPED_ACCESS(S) \
   ((S)->dr_aux.dr && DR_GROUP_FIRST_ELEMENT(S))
-- 
2.43.0

Reply via email to