From 52388096c29387af5c2ac70f0a86e76bfbae2f8d Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 23 May 2018 14:01:36 +0000 Subject: [PATCH] tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction of fixed offset from memset VN. 2018-05-23 Richard Biener * 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 --- gcc/ChangeLog | 5 +++++ gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-66.c | 11 +++++++++++ gcc/tree-ssa-sccvn.c | 1 - 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-66.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 09a70256d76..d377909fba4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-05-23 Richard Biener + + * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction + of fixed offset from memset VN. + 2018-05-23 Bill Schmidt * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index aea02b9085a..b3cf4b1fd95 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2018-05-23 Richard Biener + + * gcc.dg/tree-ssa/ssa-fre-66.c: New testcase. + 2018-05-23 Sudakshina Das 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 00000000000..1c86a1f3866 --- /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 96e80c7b5a3..73e8fc5df49 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)) -- 2.30.2