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

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

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

commit r15-1391-g4b75ed33fa5fd604897e7a30e79bd28d46598373
Author: Richard Biener <rguent...@suse.de>
Date:   Fri Jun 14 14:46:08 2024 +0200

    Enhance if-conversion for automatic arrays

    Automatic arrays that are not address-taken should not be subject to
    store data races.  This applies to OMP SIMD in-branch lowered
    functions result array which for the testcase otherwise prevents
    vectorization with SSE and for AVX and AVX512 ends up with spurious
    .MASK_STORE to the stack surviving.

    This inefficiency was noted in PR111793.

    I've introduced ref_can_have_store_data_races, commonizing uses
    of flag_store_data_races in if-conversion, cselim and store motion.

            PR tree-optimization/111793
            * tree-ssa-alias.h (ref_can_have_store_data_races): Declare.
            * tree-ssa-alias.cc (ref_can_have_store_data_races): New
            function.
            * tree-if-conv.cc (ifcvt_memrefs_wont_trap): Use
            ref_can_have_store_data_races to allow more unconditional
            stores.
            * tree-ssa-loop-im.cc (execute_sm): Likewise.
            * tree-ssa-phiopt.cc (cond_store_replacement): Likewise.

            * gcc.dg/vect/vect-simd-clone-21.c: New testcase.

Reply via email to