https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91123
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Guenther <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:5f0653a8b75a5ad5a5405a27dd92d3a5759eed4c commit r10-6426-g5f0653a8b75a5ad5a5405a27dd92d3a5759eed4c Author: Richard Biener <rguent...@suse.de> Date: Fri Jan 31 13:28:11 2020 +0100 tree-optimization/91123 - restore redundant store removal Redundant store removal in FRE was restricted for correctness reasons. The following extends correctness fixes required to memcpy/aggregate copy translation. The main change is that we no longer insert references rewritten to cover such aggregate copies into the hashtable but the original one. 2020-02-04 Richard Biener <rguent...@suse.de> PR tree-optimization/91123 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method. (vn_walk_cb_data::last_vuse): New member. (vn_walk_cb_data::saved_operands): Likewsie. (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands. (vn_walk_cb_data::push_partial_def): Use finish. (vn_reference_lookup_2): Update last_vuse and use finish if we've saved operands. (vn_reference_lookup_3): Use finish and update calls to push_partial_defs everywhere. When translating through memcpy or aggregate copies save off operands and alias-set. (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE operation for redundant store removal. * gcc.dg/tree-ssa/ssa-fre-85.c: New testcase.