aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-05-29 11:23:05 +0200
committerRichard Biener <rguenther@suse.de>2020-06-04 15:57:45 +0200
commita0dae768c6f78eba6997930065b55184202d87ba (patch)
tree745fe20263889703d48e9d8673d29eb6687d6a07 /gcc/tree-vectorizer.h
parente1008cd1d8504775e6a5e39325e396e61b39b84c (diff)
downloadgcc-a0dae768c6f78eba6997930065b55184202d87ba.zip
gcc-a0dae768c6f78eba6997930065b55184202d87ba.tar.gz
gcc-a0dae768c6f78eba6997930065b55184202d87ba.tar.bz2
Add explicit SLP_TREE_LANES
This adds an explicit number of scalar lanes to the SLP node avoiding to dispatch between stmts/ops and eventually not require those vectors at all. 2020-05-27 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (_slp_tree::lanes): New. (SLP_TREE_LANES): Likewise. * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it. (vectorizable_reduction): Likewise. (vect_transform_cycle_phi): Likewise. (vectorizable_induction): Likewise. (vectorizable_live_operation): Likewise. * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes. (vect_create_new_slp_node): Likewise. (slp_copy_subtree): Copy it. (vect_optimize_slp): Use it. (vect_slp_analyze_node_operations_1): Likewise. (vect_slp_convert_to_external): Likewise. (vect_bb_vectorization_profitable_p): Likewise. * tree-vect-stmts.c (vectorizable_load): Likewise. (get_vectype_for_scalar_type): Likewise.
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 5a5648b..1396da7 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -155,6 +155,8 @@ struct _slp_tree {
bool two_operators;
/* The DEF type of this node. */
enum vect_def_type def_type;
+ /* The number of scalar lanes produced by this node. */
+ unsigned int lanes;
};
@@ -197,6 +199,7 @@ public:
#define SLP_TREE_DEF_TYPE(S) (S)->def_type
#define SLP_TREE_VECTYPE(S) (S)->vectype
#define SLP_TREE_REPRESENTATIVE(S) (S)->representative
+#define SLP_TREE_LANES(S) (S)->lanes
/* Key for map that records association between
scalar conditions and corresponding loop mask, and