summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-09-24 10:10:49 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-09-24 10:10:49 +0000
commit3f9e08f57e1de90de5bc9d2a00815ea38064c733 (patch)
tree90c3e98963cb030009d049f320a2e986b1bb0757 /gcc/tree-ssa-sccvn.c
parent47d17f705826669e7a7c56f1bee54b4231870e41 (diff)
tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF base.
2019-09-24 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF base. * gcc.dg/torture/20190924-1.c: New testcase. From-SVN: r276092
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index c29e2de61ac..44b8c67b198 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -2935,8 +2935,9 @@ vn_reference_lookup_3 (ao_ref *ref, tree vuse, void *data_,
else
return (void *)-1;
}
- if (TREE_CODE (rhs) != SSA_NAME
- && TREE_CODE (rhs) != ADDR_EXPR)
+ if (TREE_CODE (rhs) == SSA_NAME)
+ rhs = SSA_VAL (rhs);
+ else if (TREE_CODE (rhs) != ADDR_EXPR)
return (void *)-1;
/* The bases of the destination and the references have to agree. */