From: Richard Guenther Date: Wed, 25 Jan 2012 15:37:33 +0000 (+0000) Subject: tree-ssa-sccvn.c (vn_reference_eq): Also compare if both bases are dereferenced. X-Git-Tag: releases/gcc-4.6.3~148 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58670766053ca6018328aea6034cb1578b83ff24;p=thirdparty%2Fgcc.git tree-ssa-sccvn.c (vn_reference_eq): Also compare if both bases are dereferenced. 2012-01-25 Richard Guenther * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both bases are dereferenced. From-SVN: r183523 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c63ae26518b7..2e80e0af9fb0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-01-25 Richard Guenther + + * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both + bases are dereferenced. + 2012-01-24 Richard Guenther Forward-port to branch diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index eb8896907e99..6ed076d15b44 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -546,6 +546,7 @@ vn_reference_eq (const void *p1, const void *p2) tem1.type = TREE_TYPE (tem1.op0); tem1.opcode = TREE_CODE (tem1.op0); vro1 = &tem1; + deref1 = false; } if (deref2 && vro2->opcode == ADDR_EXPR) { @@ -554,7 +555,10 @@ vn_reference_eq (const void *p1, const void *p2) tem2.type = TREE_TYPE (tem2.op0); tem2.opcode = TREE_CODE (tem2.op0); vro2 = &tem2; + deref2 = false; } + if (deref1 != deref2) + return false; if (!vn_reference_op_eq (vro1, vro2)) return false; ++j;