On Wed, Dec 17, 2025 at 5:10 AM Andrew Pinski
<[email protected]> wrote:
>
> Looks like Honza messed up the return value for 
> __builtin_unreachable/__builtin_trap
> in unlikely_executed_stmt_p (with r16-2639-g1d3e713dda99e2). These are 
> inserted
> by the user or optimizers but they are always unlikely. So fix the return 
> value
> to be true for these.
>
> A minor update to gcc.target/i386/pr121572-1a.c is needed as the never 
> executed
> predicate causes the trap instruction (ud2) to be in a new partition which 
> interfers
> with the dg-final check-body check. Also the code generation goes back to 
> what it
> was in GCC 15 also.
>
> Bootstrapped and tested on x86_64-linux-gnu.

OK.

> gcc/ChangeLog:
>
>         * predict.cc (unlikely_executed_stmt_p): Fix up return for
>         __builtin_unreachable/__builtin_trap.
>
> gcc/testsuite/ChangeLog:
>
>         * gcc.target/i386/pr121572-1a.c: Turn off 
> -freorder-blocks-and-partition
>         as it interferes with the check-body.
>
> Signed-off-by: Andrew Pinski <[email protected]>
> ---
>  gcc/predict.cc                              | 2 +-
>  gcc/testsuite/gcc.target/i386/pr121572-1a.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/predict.cc b/gcc/predict.cc
> index d937cc699b0..704a4b574f9 100644
> --- a/gcc/predict.cc
> +++ b/gcc/predict.cc
> @@ -839,7 +839,7 @@ unlikely_executed_stmt_p (gimple *stmt)
>    if (gimple_call_builtin_p (stmt, BUILT_IN_UNREACHABLE)
>        || gimple_call_builtin_p (stmt, BUILT_IN_UNREACHABLE_TRAP)
>        || gimple_call_builtin_p (stmt, BUILT_IN_TRAP))
> -    return false;
> +    return true;
>
>    /* Checks below do not need to be fully reliable.  Cold attribute may be
>       misplaced by user and in the presence of comdat we may result in call to
> diff --git a/gcc/testsuite/gcc.target/i386/pr121572-1a.c 
> b/gcc/testsuite/gcc.target/i386/pr121572-1a.c
> index 270d8ff5cb6..c96c3f046a5 100644
> --- a/gcc/testsuite/gcc.target/i386/pr121572-1a.c
> +++ b/gcc/testsuite/gcc.target/i386/pr121572-1a.c
> @@ -19,7 +19,7 @@ extern __thread int tv_cache __attribute__ ((visibility 
> ("hidden")));
>  extern void use_cache (int);
>  extern int val (int v);
>
> -__attribute__ ((optimize (2)))
> +__attribute__ ((optimize (2,"-fno-reorder-blocks-and-partition")))
>  void
>  bug (void)
>  {
> --
> 2.43.0
>

Reply via email to