diff options
author | Richard Biener <rguenther@suse.de> | 2020-05-29 11:23:05 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-06-04 15:57:45 +0200 |
commit | a0dae768c6f78eba6997930065b55184202d87ba (patch) | |
tree | 745fe20263889703d48e9d8673d29eb6687d6a07 /gcc/tree-vectorizer.h | |
parent | e1008cd1d8504775e6a5e39325e396e61b39b84c (diff) | |
download | gcc-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.h | 3 |
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 |