diff options
author | Ira Rosen <irar@il.ibm.com> | 2007-01-21 09:22:56 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2007-01-21 09:22:56 +0000 |
commit | 6004caaf4dd656f955034b444a38a3a886a035c1 (patch) | |
tree | 05e8577ec4efe6bacd28333f67700b524ca9e2a3 /gcc/tree-vectorizer.h | |
parent | 52b213f385400a4f4adfa2a167fe8ec6303e4ca7 (diff) | |
download | gcc-6004caaf4dd656f955034b444a38a3a886a035c1.zip gcc-6004caaf4dd656f955034b444a38a3a886a035c1.tar.gz gcc-6004caaf4dd656f955034b444a38a3a886a035c1.tar.bz2 |
tree-vectorizer.h (struct _stmt_vec_info): Add new field read_write_dep and macros for its access.
* tree-vectorizer.h (struct _stmt_vec_info): Add new field
read_write_dep and macros for its access.
* tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
argument, call vect_check_interleaving for every independent pair of
data-refs. Mark loads that access the same memory location as a store
in the loop.
(vect_check_dependences): Remove.
(vect_analyze_data_ref_dependences): Remove vect_check_dependences
call, fix the call to vect_analyze_data_ref_dependence.
(vect_analyze_data_ref_access): For statements that access the same
data-ref, check that they are not stores; for loads, check that there
is no store that access the same location.
From-SVN: r121026
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r-- | gcc/tree-vectorizer.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index f323403..a13ee1e 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -252,6 +252,9 @@ typedef struct _stmt_vec_info { /* In case that two or more stmts share data-ref, this is the pointer to the previously detected stmt with the same dr. */ tree same_dr_stmt; + /* For loads only, if there is a store with the same location, this field is + TRUE. */ + bool read_write_dep; } *stmt_vec_info; /* Access Functions. */ @@ -273,6 +276,7 @@ typedef struct _stmt_vec_info { #define STMT_VINFO_DR_GROUP_STORE_COUNT(S) (S)->store_count #define STMT_VINFO_DR_GROUP_GAP(S) (S)->gap #define STMT_VINFO_DR_GROUP_SAME_DR_STMT(S)(S)->same_dr_stmt +#define STMT_VINFO_DR_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep #define DR_GROUP_FIRST_DR(S) (S)->first_dr #define DR_GROUP_NEXT_DR(S) (S)->next_dr @@ -280,6 +284,7 @@ typedef struct _stmt_vec_info { #define DR_GROUP_STORE_COUNT(S) (S)->store_count #define DR_GROUP_GAP(S) (S)->gap #define DR_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt +#define DR_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep #define STMT_VINFO_RELEVANT_P(S) ((S)->relevant != vect_unused_in_loop) |