summaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2013-04-19 06:23:16 -0500
committerAldy Hernandez <aldyh@redhat.com>2013-04-19 06:23:16 -0500
commitcd7cb45fc78ae9a62968372eae37da08444da8ca (patch)
tree034e6313862f8ff73c460181d06785834ef5f25a /gcc/tree-vectorizer.h
parente2d763ab505e4e070c7661d2373c2c9b43f45cb1 (diff)
parent52108848ca6e017bc3ca0efeef67a450d7e32e56 (diff)
downloadgcc-cd7cb45fc78ae9a62968372eae37da08444da8ca.tar.gz
Merge remote-tracking branch 'origin/cilkplus' into cilkplus-simd-rewrite
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h18
1 files changed, 5 insertions, 13 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index c75a8b56274..b7d2a49212e 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -97,13 +97,13 @@ add_stmt_info_to_vec (stmt_vector_for_cost *stmt_cost_vec, int count,
/************************************************************************
SLP
************************************************************************/
-typedef void *slp_void_p;
+typedef struct _slp_tree *slp_tree;
/* A computation tree of an SLP instance. Each node corresponds to a group of
stmts to be packed in a SIMD stmt. */
-typedef struct _slp_tree {
+struct _slp_tree {
/* Nodes that contain def-stmts of this node statements operands. */
- vec<slp_void_p> children;
+ vec<slp_tree> children;
/* A group of scalar stmts to be vectorized together. */
vec<gimple> stmts;
/* Vectorized stmt/s. */
@@ -113,7 +113,7 @@ typedef struct _slp_tree {
scalar elements in one scalar iteration (GROUP_SIZE) multiplied by VF
divided by vector size. */
unsigned int vec_stmts_size;
-} *slp_tree;
+};
/* SLP instance is a sequence of stmts in a loop that can be packed into
@@ -169,8 +169,7 @@ typedef struct _slp_oprnd_info
operand itself in case it's constant, and an indication if it's a pattern
stmt. */
enum vect_def_type first_dt;
- tree first_def_type;
- tree first_const_oprnd;
+ tree first_op_type;
bool first_pattern;
} *slp_oprnd_info;
@@ -461,10 +460,6 @@ typedef struct _stmt_vec_info {
/* Stmt is part of some pattern (computation idiom) */
bool in_pattern_p;
- /* For loads only, if there is a store with the same location, this field is
- TRUE. */
- bool read_write_dep;
-
/* The stmt to which this info struct refers to. */
gimple stmt;
@@ -590,7 +585,6 @@ typedef struct _stmt_vec_info {
#define STMT_VINFO_GROUP_STORE_COUNT(S) (S)->store_count
#define STMT_VINFO_GROUP_GAP(S) (S)->gap
#define STMT_VINFO_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt
-#define STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep
#define STMT_VINFO_GROUPED_ACCESS(S) ((S)->first_element != NULL && (S)->data_ref_info)
#define STMT_VINFO_LOOP_PHI_EVOLUTION_PART(S) (S)->loop_phi_evolution_part
@@ -600,7 +594,6 @@ typedef struct _stmt_vec_info {
#define GROUP_STORE_COUNT(S) (S)->store_count
#define GROUP_GAP(S) (S)->gap
#define GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt
-#define GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep
#define STMT_VINFO_RELEVANT_P(S) ((S)->relevant != vect_unused_in_scope)
@@ -943,7 +936,6 @@ extern tree vect_setup_realignment (gimple, gimple_stmt_iterator *, tree *,
extern void vect_transform_grouped_load (gimple, vec<tree> , int,
gimple_stmt_iterator *);
extern void vect_record_grouped_load_vectors (gimple, vec<tree> );
-extern int vect_get_place_in_interleaving_chain (gimple, gimple);
extern tree vect_get_new_vect_var (tree, enum vect_var_kind, const char *);
extern tree vect_create_addr_base_for_vector_ref (gimple, gimple_seq *,
tree, struct loop *);