aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-12-01 13:30:25 +0100
committerMartin Liska <mliska@suse.cz>2021-12-01 13:30:25 +0100
commit4cba2fa027afd5f815bd9bf3965afe1972c7387c (patch)
treeefa05b4ca35e93c65eb1a2585d5ad3dd2dd3db32 /gcc/tree-vectorizer.h
parent789b80d1fbd0b1d516b389bf11b5c70aa4d1088b (diff)
parentd376b73aa12d183e3040456c7641fb74500d0727 (diff)
downloadgcc-4cba2fa027afd5f815bd9bf3965afe1972c7387c.zip
gcc-4cba2fa027afd5f815bd9bf3965afe1972c7387c.tar.gz
gcc-4cba2fa027afd5f815bd9bf3965afe1972c7387c.tar.bz2
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index bd6f334..76e81ea 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -28,6 +28,7 @@ typedef class _stmt_vec_info *stmt_vec_info;
#include "target.h"
#include "internal-fn.h"
#include "tree-ssa-operands.h"
+#include "gimple-match.h"
/* Used for naming of new temporaries. */
enum vect_var_kind {
@@ -1196,7 +1197,7 @@ public:
enum vect_reduction_type reduc_type;
/* The original reduction code, to be used in the epilogue. */
- enum tree_code reduc_code;
+ code_helper reduc_code;
/* An internal function we should use in the epilogue. */
internal_fn reduc_fn;
@@ -2155,7 +2156,7 @@ extern tree vect_create_addr_base_for_vector_ref (vec_info *,
tree);
/* In tree-vect-loop.c. */
-extern tree neutral_op_for_reduction (tree, tree_code, tree);
+extern tree neutral_op_for_reduction (tree, code_helper, tree);
extern widest_int vect_iv_limit_for_partial_vectors (loop_vec_info loop_vinfo);
bool vect_rgroup_iv_might_wrap_p (loop_vec_info, rgroup_controls *);
/* Used in tree-vect-loop-manip.c */
@@ -2164,7 +2165,7 @@ extern opt_result vect_determine_partial_vectors_and_peeling (loop_vec_info,
/* Used in gimple-loop-interchange.c and tree-parloops.c. */
extern bool check_reduction_path (dump_user_location_t, loop_p, gphi *, tree,
enum tree_code);
-extern bool needs_fold_left_reduction_p (tree, tree_code);
+extern bool needs_fold_left_reduction_p (tree, code_helper);
/* Drive for loop analysis stage. */
extern opt_loop_vec_info vect_analyze_loop (class loop *, vec_info_shared *);
extern tree vect_build_loop_niters (loop_vec_info, bool * = NULL);
@@ -2182,7 +2183,7 @@ extern tree vect_get_loop_len (loop_vec_info, vec_loop_lens *, unsigned int,
unsigned int);
extern gimple_seq vect_gen_len (tree, tree, tree, tree);
extern stmt_vec_info info_for_reduction (vec_info *, stmt_vec_info);
-extern bool reduction_fn_for_scalar_code (enum tree_code, internal_fn *);
+extern bool reduction_fn_for_scalar_code (code_helper, internal_fn *);
/* Drive for loop transformation stage. */
extern class loop *vect_transform_loop (loop_vec_info, gimple *);
@@ -2220,6 +2221,7 @@ extern bool vectorizable_phi (vec_info *, stmt_vec_info, gimple **, slp_tree,
stmt_vector_for_cost *);
extern bool vect_emulated_vector_p (tree);
extern bool vect_can_vectorize_without_simd_p (tree_code);
+extern bool vect_can_vectorize_without_simd_p (code_helper);
extern int vect_get_known_peeling_cost (loop_vec_info, int, int *,
stmt_vector_for_cost *,
stmt_vector_for_cost *,
@@ -2370,8 +2372,7 @@ vect_is_store_elt_extraction (vect_cost_for_stmt kind, stmt_vec_info stmt_info)
inline bool
vect_is_reduction (stmt_vec_info stmt_info)
{
- return (STMT_VINFO_REDUC_DEF (stmt_info)
- || VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_info)));
+ return STMT_VINFO_REDUC_IDX (stmt_info) >= 0;
}
/* If STMT_INFO describes a reduction, return the vect_reduction_type