[Bug tree-optimization/99407] s243 benchmark of TSVC is vectorized by clang and not by gcc, missed DSE

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Sep 22 10:52:39 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99407

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:4bdf739f835520ccbc433dc9eac461895741f317

commit r13-2769-g4bdf739f835520ccbc433dc9eac461895741f317
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Sep 22 09:40:40 2022 +0200

    tree-optimization/99407 - DSE with data-ref analysis

    The following resolves the issue that DSE cannot handle references
    with variable offsets well when identifying possible uses of a store.
    Instead of just relying on ref_maybe_used_by_stmt_p we use data-ref
    analysis, making sure to perform that at most once per stmt.  The
    new mode is only exercised by the DSE pass before loop optimization
    as specified by a new pass parameter and when expensive optimizations
    are enabled, so it's disabled below -O2.

            PR tree-optimization/99407
            * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
            (dse_classify_store): Use data-ref analysis to disambiguate more
uses.
            (pass_dse::use_dr_analysis_p): New pass parameter.
            (pass_dse::set_pass_param): Implement.
            (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
            * passes.def: Allow DR analysis for the DSE pass before loop.

            * gcc.dg/vect/tsvc/vect-tsvc-s243.c: Remove XFAIL.


More information about the Gcc-bugs mailing list