aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-07-04 11:38:01 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-07-04 11:38:01 +0000
commitef2a9157f4bbd2b7c5cd93328732a94970234173 (patch)
treef89d465d2461fc26ddd1cceed9cd618240763c10 /gcc
parent4fa4929ea861d9d61f9121f6fe1023b1edaaa538 (diff)
downloadgcc-ef2a9157f4bbd2b7c5cd93328732a94970234173.zip
gcc-ef2a9157f4bbd2b7c5cd93328732a94970234173.tar.gz
gcc-ef2a9157f4bbd2b7c5cd93328732a94970234173.tar.bz2
2010-07-4 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit. From-SVN: r161799
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/tree-ssa-sccvn.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb54865..b7b6b00 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2010-07-04 Richard Guenther <rguenther@suse.de>
+ * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
+
+2010-07-04 Richard Guenther <rguenther@suse.de>
+
PR tree-optimization/44656
* tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
again after value-replacing in the defintions lhs.
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index cca1941..b121309 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -1218,12 +1218,12 @@ vn_reference_lookup_3 (ao_ref *ref, tree vuse, void *vr_)
tree lhs = gimple_assign_lhs (def_stmt);
ao_ref ref1;
VEC (vn_reference_op_s, heap) *operands = NULL;
- bool res;
+ bool res = true;
copy_reference_ops_from_ref (lhs, &operands);
operands = valueize_refs (operands);
- ao_ref_init_from_vn_reference (&ref1, get_alias_set (lhs),
- TREE_TYPE (lhs), operands);
- res = refs_may_alias_p_1 (ref, &ref1, true);
+ if (ao_ref_init_from_vn_reference (&ref1, get_alias_set (lhs),
+ TREE_TYPE (lhs), operands))
+ res = refs_may_alias_p_1 (ref, &ref1, true);
VEC_free (vn_reference_op_s, heap, operands);
if (!res)
return NULL;