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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Alexandre Oliva <aol...@gcc.gnu.org>:

https://gcc.gnu.org/g:672db38c6f0723ca57fe8ff4c43422341e7fb857

commit r14-6735-g672db38c6f0723ca57fe8ff4c43422341e7fb857
Author: Alexandre Oliva <ol...@adacore.com>
Date:   Tue Dec 19 22:17:42 2023 -0300

    -finline-stringops: allow expansion into edges [PR113002]

    Builtin expanders for memset and memcpy may involve conditionals and
    loops, but their sequences may be end up emitted in edges.  Alas,
    commit_one_edge_insertion rejects sequences that end with a jump, a
    requirement that makes sense for insertions after expand, but not so
    much during expand.

    During expand, jumps may appear in the middle of the insert sequence
    as much as in the end, and it's only after committing edge insertions
    out of PHI nodes that we go through the entire function splitting
    blocks where needed, so relax the assert in commit_one_edge_insertion
    so that jumps are accepted during expand even at the end of the
    sequence.


    for  gcc/ChangeLog

            PR rtl-optimization/113002
            * cfgrtl.cc (commit_one_edge_insertion): Tolerate jumps in the
            inserted sequence during expand.

    for  gcc/testsuite/ChangeLog

            PR rtl-optimization/113002
            * gcc.dg/vect/pr113002.c: New.

Reply via email to