aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2009-03-24 12:18:19 +0000
committerIra Rosen <irar@il.ibm.com>2009-03-24 12:18:19 +0000
commit468a2e716d8d090fa636ca3a7988909350f98dbd (patch)
tree87a8945de71076faf1d2221f88a968f9792198f6
parentdeacb9c6ba376cd0ca1a04c6fff6611d8d7b4f1b (diff)
PR tree-optimization/39529
* tree-vect-transform.c (vect_create_data_ref_ptr): Call mark_sym_for_renaming for the tag copied to the new vector pointer. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@145029 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr39529.c21
-rw-r--r--gcc/tree-vect-transform.c5
4 files changed, 37 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6974b1f802a..c7aeb48743a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-03-24 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/39529
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Call
+ mark_sym_for_renaming for the tag copied to the new vector
+ pointer.
+
2009-03-24 Arthur Loiret <aloiret@debian.org>
* config.host (alpha*-*-linux*): Use driver-alpha.o and
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4f869a0e3e3..196a040acfe 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2009-03-24 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/39529
+ * gcc.dg/vect/pr39529.c: New test.
+
2009-03-24 Dodji Seketeli <dodji@redhat.com>
Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/testsuite/gcc.dg/vect/pr39529.c b/gcc/testsuite/gcc.dg/vect/pr39529.c
new file mode 100644
index 00000000000..4853c13503f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr39529.c
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+
+void
+foo (void)
+{
+ char a[1024];
+ char *p = &a[0];
+ char *p2;
+
+ p2 = p + 1024;
+ do
+ {
+ p += 2;
+ *(p-2) = 1;
+ *(p-1) = 1;
+ } while (p < p2);
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
+
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
index 2afd4e03394..a048342d8be 100644
--- a/gcc/tree-vect-transform.c
+++ b/gcc/tree-vect-transform.c
@@ -1099,7 +1099,10 @@ vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop,
if (!MTAG_P (tag))
new_type_alias (vect_ptr, tag, DR_REF (dr));
else
- set_symbol_mem_tag (vect_ptr, tag);
+ {
+ set_symbol_mem_tag (vect_ptr, tag);
+ mark_sym_for_renaming (tag);
+ }
/** Note: If the dataref is in an inner-loop nested in LOOP, and we are
vectorizing LOOP (i.e. outer-loop vectorization), we need to create two