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

--- Comment #11 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <[email protected]>:

https://gcc.gnu.org/g:135fe58ec9a989fc301d762547325fd90ea37397

commit r16-6233-g135fe58ec9a989fc301d762547325fd90ea37397
Author: Andrew Pinski <[email protected]>
Date:   Mon Dec 15 12:36:44 2025 -0800

    ch: Fix detection of non-executed loop exit

    After r16-6104-gb5c64db0a49d46, we try to duplicate bb's
    that contain loop exit that have "never exit" but we check
    against the propability of the exit to very_unlikely. If we
    have PGO, then a loop exit might be very unlikely to be taken
    if we interate the loop more than 2000 times.
    The problem is the check for very_unlikely is just wrong. It should
    just be never. So let's remove that.

    Also adds a testcase for __builtin_abort instead of __builtin_unreachable
    since there are slightly different pathes to get the probilities.

    Bootstrapped and tested on x86_64-linux-gnu.

            PR tree-optimization/122734
    gcc/ChangeLog:

            * tree-ssa-loop-ch.cc (should_duplicate_loop_header_p): Remove
            check on very_unlikely probability.

    gcc/testsuite/ChangeLog:

            * gcc.dg/tree-ssa/copy-headers-13.c: New test.

    Signed-off-by: Andrew Pinski <[email protected]>

Reply via email to