aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-vectorizer.c12
2 files changed, 13 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bd3faca..d38d84d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-14 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.c (vect_analyze_data_refs): Call
+ vect_get_base_and_bit_offset to get memory tag for array ref.
+ (vect_create_addr_base_for_vector_ref): Remove redundant checks.
+
2004-10-14 Richard Earnshaw <rearnsha@arm.com>
* configure.ac: Use $LN_S for creating symlinks (not $LN).
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index dc93116..382139f 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -750,10 +750,7 @@ vect_create_addr_base_for_vector_ref (tree stmt,
is_ptr_ref = TREE_CODE (data_ref_base_type) == POINTER_TYPE
&& TREE_CODE (data_ref_base) == SSA_NAME;
- is_array_ref = TREE_CODE (data_ref_base_type) == ARRAY_TYPE
- && (TREE_CODE (data_ref_base) == VAR_DECL
- || TREE_CODE (data_ref_base) == COMPONENT_REF
- || TREE_CODE (data_ref_base) == ARRAY_REF);
+ is_array_ref = TREE_CODE (data_ref_base_type) == ARRAY_TYPE;
is_addr_expr = TREE_CODE (data_ref_base) == ADDR_EXPR
|| TREE_CODE (data_ref_base) == PLUS_EXPR
|| TREE_CODE (data_ref_base) == MINUS_EXPR;
@@ -3456,6 +3453,8 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo)
struct data_reference *dr;
tree tag;
tree address_base;
+ bool base_aligned_p;
+ tree offset;
if (vect_debug_details (NULL))
fprintf (dump_file, "\n<<vect_analyze_data_refs>>\n");
@@ -3565,7 +3564,10 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo)
{
case ARRAY_REF:
dr = analyze_array (stmt, TREE_OPERAND (symbl, 0), DR_IS_READ(dr));
- STMT_VINFO_MEMTAG (stmt_info) = DR_BASE_NAME (dr);
+ STMT_VINFO_MEMTAG (stmt_info) =
+ vect_get_base_and_bit_offset (dr, DR_BASE_NAME (dr), NULL_TREE,
+ loop_vinfo, &offset,
+ &base_aligned_p);
break;
case VAR_DECL: