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