aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-05-23 14:01:36 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-05-23 14:01:36 +0000
commit52388096c29387af5c2ac70f0a86e76bfbae2f8d (patch)
tree39e4be87d5a7b021240e9db9ec9734722723998d
parentd71dc99078ea4009a442559028d6110e599cdc96 (diff)
downloadgcc-52388096c29387af5c2ac70f0a86e76bfbae2f8d.zip
gcc-52388096c29387af5c2ac70f0a86e76bfbae2f8d.tar.gz
gcc-52388096c29387af5c2ac70f0a86e76bfbae2f8d.tar.bz2
tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction of fixed offset from memset VN.
2018-05-23 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction of fixed offset from memset VN. * gcc.dg/tree-ssa/ssa-fre-66.c: New testcase. From-SVN: r260609
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-66.c11
-rw-r--r--gcc/tree-ssa-sccvn.c1
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 09a7025..d377909 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-05-23 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction
+ of fixed offset from memset VN.
+
2018-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
* gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index aea02b9..b3cf4b1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2018-05-23 Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-fre-66.c: New testcase.
+
2018-05-23 Sudakshina Das <sudi.das@arm.com>
PR target/84882
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-66.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-66.c
new file mode 100644
index 0000000..1c86a1f3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-66.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-fre1" } */
+
+int foo (int i)
+{
+ int a[16];
+ __builtin_memset (a, 42, sizeof (a));
+ return a[i];
+}
+
+/* { dg-final { scan-tree-dump "return 707406378;" "fre1" { target { int32plus } } } } */
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 96e80c7..73e8fc5 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -1962,7 +1962,6 @@ vn_reference_lookup_3 (ao_ref *ref, tree vuse, void *vr_,
|| ((TREE_CODE (gimple_call_arg (def_stmt, 1)) == INTEGER_CST
|| (INTEGRAL_TYPE_P (vr->type) && known_eq (ref->size, 8)))
&& CHAR_BIT == 8 && BITS_PER_UNIT == 8
- && known_eq (ref->size, maxsize)
&& offset.is_constant (&offseti)
&& offseti % BITS_PER_UNIT == 0))
&& poly_int_tree_p (gimple_call_arg (def_stmt, 2))