https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66142
--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> --- Author: rguenth Date: Fri Sep 18 07:57:00 2015 New Revision: 227896 URL: https://gcc.gnu.org/viewcvs?rev=227896&root=gcc&view=rev Log: 2015-09-18 Richard Biener <rguent...@suse.de> PR tree-optimization/66142 * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF treat MEM[&x] and x the same. * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove. * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true when we simplified sth. (vn_reference_maybe_forwprop_address): Likewise. (valueize_refs_1): When we simplified through vn_reference_fold_indirect or vn_reference_maybe_forwprop_address set valueized_anything to true. (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether one ref kills the other instead of just a offset-based test. * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF for the operand_equal_p test to compare bases and also compare sizes. Modified: trunk/gcc/ChangeLog trunk/gcc/fold-const.c trunk/gcc/tree-ssa-alias.c trunk/gcc/tree-ssa-sccvn.c trunk/gcc/tree-ssa-sccvn.h