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

--- Comment #13 from CVS 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:8f81100115f68b37fb2723e987c14a3185d1f47d

commit r14-60-g8f81100115f68b37fb2723e987c14a3185d1f47d
Author: Richard Biener <rguent...@suse.de>
Date:   Wed Mar 22 10:05:19 2023 +0100

    rtl-optimization/109237 - speedup bb_is_just_return

    For the testcase bb_is_just_return is on top of the profile, changing
    it to walk BB insns backwards puts it off the profile.  That's because
    in the forward walk you have to process possibly many debug insns
    but in a backward walk you very likely run into control insns first.

            PR rtl-optimization/109237
            * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.

--- Comment #14 from CVS 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:675ac8822b51a39f6a66a44858d7c31ece8700f2

commit r14-61-g675ac8822b51a39f6a66a44858d7c31ece8700f2
Author: Richard Biener <rguent...@suse.de>
Date:   Wed Mar 22 09:29:49 2023 +0100

    rtl-optimization/109237 - quadraticness in delete_trivially_dead_insns

    The following addresses quadraticness in processing debug insns
    in delete_trivially_dead_insns and insn_live_p by using TREE_VISITED
    on the INSN_VAR_LOCATION_DECL to indicate a later debug bind
    with the same decl and no intervening real insn or debug marker.
    That gets rid of the NEXT_INSN walk in insn_live_p in favor of
    first clearing TREE_VISITED in the first loop over insn and
    the book-keeping of decls we set the bit since we need to clear
    them when visiting a real or debug marker insn.

    That improves the time spent in delete_trivially_dead_insns from
    10.6s to 2.2s for the testcase.

            PR rtl-optimization/109237
            * cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
            TREE_VISITED on INSN_VAR_LOCATION_DECL.
            (delete_trivially_dead_insns): Maintain TREE_VISITED on
            active debug bind INSN_VAR_LOCATION_DECL.

Reply via email to