summaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-13 09:48:26 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-13 09:48:26 +0000
commit91a74fc6ef3473f7087e00a5861d01550afd166f (patch)
tree1b7bb981ab3207d6bac81f6a8d4c80f528a0e0ed /gcc/tree-vectorizer.h
parent493106f66ff610b15fb855a85ba53fea69d322a8 (diff)
downloadgcc-91a74fc6ef3473f7087e00a5861d01550afd166f.tar.gz
2010-04-13 Richard Guenther <rguenther@suse.de>
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only add RW dependence for dependence distance zero. Adjust maximal vectorization factor according to dependences. Move alignment handling ... (vect_find_same_alignment_drs): ... here. New function. (vect_analyze_data_ref_dependences): Adjust. (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs. (vect_analyze_data_refs): Adjust minimal vectorization factor according to data references. * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref dependences before determining the vectorization factor. Analyze alignment after determining the vectorization factor. * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref dependences before alignment. * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust prototype. (vect_analyze_data_refs): Likewise. (MAX_VECTORIZATION_FACTOR): New define. * gcc.dg/vect/no-vfa-vect-depend-1.c: Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158259 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index b46bc52c25b..52b2a7ec59f 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -601,6 +601,9 @@ typedef struct _stmt_vec_info {
conversion. */
#define MAX_INTERM_CVT_STEPS 3
+/* The maximum vectorization factor supported by any target (V32QI). */
+#define MAX_VECTORIZATION_FACTOR 32
+
/* Avoid GTY(()) on stmt_vec_info. */
typedef void *vec_void_p;
DEF_VEC_P (vec_void_p);
@@ -802,13 +805,14 @@ extern enum dr_alignment_support vect_supportable_dr_alignment
(struct data_reference *);
extern tree vect_get_smallest_scalar_type (gimple, HOST_WIDE_INT *,
HOST_WIDE_INT *);
-extern bool vect_analyze_data_ref_dependences (loop_vec_info, bb_vec_info);
+extern bool vect_analyze_data_ref_dependences (loop_vec_info, bb_vec_info,
+ int *);
extern bool vect_enhance_data_refs_alignment (loop_vec_info);
extern bool vect_analyze_data_refs_alignment (loop_vec_info, bb_vec_info);
extern bool vect_verify_datarefs_alignment (loop_vec_info, bb_vec_info);
extern bool vect_analyze_data_ref_accesses (loop_vec_info, bb_vec_info);
extern bool vect_prune_runtime_alias_test_list (loop_vec_info);
-extern bool vect_analyze_data_refs (loop_vec_info, bb_vec_info);
+extern bool vect_analyze_data_refs (loop_vec_info, bb_vec_info, int *);
extern tree vect_create_data_ref_ptr (gimple, struct loop *, tree, tree *,
gimple *, bool, bool *);
extern tree bump_vector_ptr (tree, gimple, gimple_stmt_iterator *, gimple, tree);