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.

Reply via email to