aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-02-16 15:00:45 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-02-16 15:00:45 +0000
commit87440c298eb2ed47166b8d57a4afc90d310f3a8f (patch)
tree8d0e66b862f18cc6aaa9eaf860c087a6377e9e42 /gcc/tree-ssa-sccvn.c
parent6d87c306c6a44f8db81a9a9f2f5de4d943d5e57f (diff)
downloadgcc-87440c298eb2ed47166b8d57a4afc90d310f3a8f.zip
gcc-87440c298eb2ed47166b8d57a4afc90d310f3a8f.tar.gz
gcc-87440c298eb2ed47166b8d57a4afc90d310f3a8f.tar.bz2
re PR tree-optimization/69776 (Wrong optimization with aliasing)
2016-02-16 Richard Biener <rguenther@suse.de> PR tree-optimization/69776 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias sets from caller. (indirect_refs_may_alias_p): Likewise. (refs_may_alias_p_1): Pass alias sets as from ao_ref. * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set according to tbaa_p. * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag. (optimize_stmt): For redundant store discovery do not allow tbaa. * gcc.dg/torture/pr69776-2.c: New testcase. From-SVN: r233453
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 5b78ba4..1c237a4 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -2249,7 +2249,7 @@ vn_reference_lookup (tree op, tree vuse, vn_lookup_kind kind,
vr1.operands = operands
= valueize_shared_reference_ops_from_ref (op, &valuezied_anything);
vr1.type = TREE_TYPE (op);
- vr1.set = get_alias_set (op);
+ vr1.set = tbaa_p ? get_alias_set (op) : 0;
vr1.hashcode = vn_reference_compute_hash (&vr1);
if ((cst = fully_constant_vn_reference_p (&vr1)))
return cst;