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

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamb...@gcc.gnu.org>:

https://gcc.gnu.org/g:f6c168f8c06047bfaa3005e570126831b8855dcc

commit r13-3378-gf6c168f8c06047bfaa3005e570126831b8855dcc
Author: Martin Jambor <mjam...@suse.cz>
Date:   Wed Oct 19 14:43:04 2022 +0200

    SRA: Limit replacement creation for accesses propagated from LHSs

    PR 107206 is fallout from the fix to PR 92706 where we started
    propagating accesses across assignments also from LHS to RHS of
    assignments so that we would not do harmful total scalarization of the
    aggregates on the RHS.

    But this can lead to new scalarization of these aggregates and in the
    testcase of PR 107206 these can appear in superfluous uses of
    un-initialized values and spurious warnings.

    Fixed by making sure the the accesses created by propagation in this
    direction are only used as a basis for replacements when the structure
    would be totally scalarized anyway.

    gcc/ChangeLog:

    2022-10-18  Martin Jambor  <mjam...@suse.cz>

            PR tree-optimization/107206
            * tree-sra.cc (struct access): New field
grp_result_of_prop_from_lhs.
            (analyze_access_subtree): Do not create replacements for accesses
with
            this flag when not toally scalarizing.
            (propagate_subaccesses_from_lhs): Set the new flag.

    gcc/testsuite/ChangeLog:

    2022-10-18  Martin Jambor  <mjam...@suse.cz>

            PR tree-optimization/107206
            * g++.dg/tree-ssa/pr107206.C: New test.
  • [Bug tree-optimization/92706] S... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to