aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2010-04-26 06:39:27 +0000
committerIra Rosen <irar@gcc.gnu.org>2010-04-26 06:39:27 +0000
commit4b5caab7712abeb3e4e1fa0ce6f74484e5953079 (patch)
tree127816de355ad6eada440e245b181155ca6791c6 /gcc/tree-vectorizer.h
parent2cee01013603d62bf3e8985f0699d562c9efe813 (diff)
downloadgcc-4b5caab7712abeb3e4e1fa0ce6f74484e5953079.zip
gcc-4b5caab7712abeb3e4e1fa0ce6f74484e5953079.tar.gz
gcc-4b5caab7712abeb3e4e1fa0ce6f74484e5953079.tar.bz2
tree-vectorizer.h (struct _stmt_vec_info): Add new field to determine if the statement is vectorizable...
* tree-vectorizer.h (struct _stmt_vec_info): Add new field to determine if the statement is vectorizable, and a macro to access it. * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Skip statements that can't be vectorized. If the analysis fails, mark the statement as unvectorizable if vectorizing basic block. (vect_compute_data_refs_alignment): Likewise. (vect_verify_datarefs_alignment): Skip statements marked as unvectorizable. Add print. (vect_analyze_group_access): Skip statements that can't be vectorized. If the analysis fails, mark the statement as unvectorizable if vectorizing basic block. (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise. * tree-vect-stmts.c (vectorizable_store): Fix the number of generated stmts for SLP. (new_stmt_vec_info): Initialize the new field. * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize statements marked as unvectorizable. From-SVN: r158719
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index bd43a4b..c80c345 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -489,6 +489,10 @@ typedef struct _stmt_vec_info {
/* The bb_vec_info with respect to which STMT is vectorized. */
bb_vec_info bb_vinfo;
+
+ /* Is this statement vectorizable or should it be skipped in (partial)
+ vectorization. */
+ bool vectorizable;
} *stmt_vec_info;
/* Access Functions. */
@@ -500,6 +504,7 @@ typedef struct _stmt_vec_info {
#define STMT_VINFO_LIVE_P(S) (S)->live
#define STMT_VINFO_VECTYPE(S) (S)->vectype
#define STMT_VINFO_VEC_STMT(S) (S)->vectorized_stmt
+#define STMT_VINFO_VECTORIZABLE(S) (S)->vectorizable
#define STMT_VINFO_DATA_REF(S) (S)->data_ref_info
#define STMT_VINFO_DR_BASE_ADDRESS(S) (S)->dr_base_address