Hi!

On 2025-04-17T18:15:50+0000, ci_notify--- via Gcc-regression 
<gcc-regression@gcc.gnu.org> wrote:
> Our automatic CI has detected problems related to your patch(es). Please find 
> some details below.
>
> In bootstrap_check master-arm-check_bootstrap, after:
>   | commit gcc-15-9463-gaa3e72f9430
>   | Author: Thomas Schwinge <tschwi...@baylibre.com>
>   | Date:   Thu Mar 27 23:06:37 2025 +0100
>   | 
>   |     Add test cases for exception handling constructs in dead code for 
> GCN, nvptx target and OpenMP 'target' offloading [PR118794]
>   |     
>   |             PR target/118794
>   |             gcc/testsuite/
>   |             * g++.target/gcn/exceptions-pr118794-1.C: New.
>   | ... 7 lines of the commit log omitted.
>
> Produces 2 regressions:
>   | 
>   | regressions.sum:
>   | Running libgomp:libgomp.c++/c++.exp ...
>   | FAIL: libgomp.c++/target-exceptions-pr118794-1.C scan-tree-dump-times 
> optimized "gimple_call <__builtin_eh_pointer, " 1
>   | FAIL: libgomp.c++/target-exceptions-pr118794-1.C scan-tree-dump-times 
> optimized "gimple_call <__builtin_unwind_resume, " 1

Ah, sorry for that.  This is due to 'targetm.arm_eabi_unwinder', as per:

    gcc/config/arm/arm.cc:#define TARGET_ARM_EABI_UNWINDER true
    gcc/config/c6x/c6x.cc:#define TARGET_ARM_EABI_UNWINDER true

..., which for ARM is conditional to '#if ARM_UNWIND_INFO' (defined in
'gcc/config/arm/bpabi.h', used for various GCC configurations), and for
C6x unconditional.

This gets us:

    --- target-exceptions-pr118794-1.C.269t.optimized
    +++ target-exceptions-pr118794-1.C.270t.optimized
    [...]
     __attribute__((omp declare target))
     void f ()
    [...]
       gimple_call <__dt_comp , NULL, &c>
    -  gimple_call <__builtin_eh_pointer, _7, 2>
    -  gimple_call <__builtin_unwind_resume, NULL, _7>
    +  gimple_call <__builtin_cxa_end_cleanup, NULL>
     
     }
    [...]

There doesn't appear to be an effective-target keyword for
'targetm.arm_eabi_unwinder' specifically, do we need to add one?
Or, other test cases appear to use effective-target 'arm_eabi' to
disambiguate the two variants; is that the right thing to use here, too?
(..., plus 'tic6x-*-*' in this case?)  OK to push the attached
"Adjust 'libgomp.c++/target-exceptions-pr118794-1.C' for 
'targetm.arm_eabi_unwinder' [PR118794]"?
(Could Arm/C6x maintainers please test this for me?)


Grüße
 Thomas


> Used configuration :
>  *CI config* tcwg_bootstrap_check master-arm-check_bootstrap
>  *configure and test flags:* none, autodetected on 
> armv8l-unknown-linux-gnueabihf
>
> We track this bug report under https://linaro.atlassian.net/browse/GNU-1562. 
> Please let us know if you have a fix.
>
> If you have any questions regarding this report, please ask on 
> linaro-toolch...@lists.linaro.org mailing list.
>
> -----------------8<--------------------------8<--------------------------8<--------------------------
>
> The information below contains the details of the failures, and the ways to 
> reproduce a debug environment:
>
> You can find the failure logs in *.log.1.xz files in
>  * 
> https://ci.linaro.org/job/tcwg_bootstrap_check--master-arm-check_bootstrap-build/1236/artifact/artifacts/00-sumfiles/
> The full lists of regressions and improvements as well as configure and make 
> commands are in
>  * 
> https://ci.linaro.org/job/tcwg_bootstrap_check--master-arm-check_bootstrap-build/1236/artifact/artifacts/notify/
> The list of [ignored] baseline and flaky failures are in
>  * 
> https://ci.linaro.org/job/tcwg_bootstrap_check--master-arm-check_bootstrap-build/1236/artifact/artifacts/sumfiles/xfails.xfail
>
> Current build   : 
> https://ci.linaro.org/job/tcwg_bootstrap_check--master-arm-check_bootstrap-build/1236/artifact/artifacts
> Reference build : 
> https://ci.linaro.org/job/tcwg_bootstrap_check--master-arm-check_bootstrap-build/1235/artifact/artifacts
>
> Instruction to reproduce the build : 
> https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gcc/sha1/aa3e72f943032e5f074b2bd2fd06d130dda8760b/tcwg_bootstrap_check/master-arm-check_bootstrap/reproduction_instructions.txt
>
> Full commit : 
> https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=aa3e72f943032e5f074b2bd2fd06d130dda8760b


>From 423af3203bd9ebcf1f472f244c8e0d698163967f Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tschwi...@baylibre.com>
Date: Tue, 22 Apr 2025 13:41:22 +0200
Subject: [PATCH] Adjust 'libgomp.c++/target-exceptions-pr118794-1.C' for
 'targetm.arm_eabi_unwinder' [PR118794]

Fix-up for commit aa3e72f943032e5f074b2bd2fd06d130dda8760b
"Add test cases for exception handling constructs in dead code for GCN, nvptx target and OpenMP 'target' offloading [PR118794]":
we need to adjust for configurations with 'targetm.arm_eabi_unwinder', as per:

    gcc/config/arm/arm.cc:#define TARGET_ARM_EABI_UNWINDER true
    gcc/config/c6x/c6x.cc:#define TARGET_ARM_EABI_UNWINDER true

..., which for ARM is conditional to '#if ARM_UNWIND_INFO' (defined in
'gcc/config/arm/bpabi.h', used for various GCC configurations), and for
C6x unconditional.

This gets us:

    --- target-exceptions-pr118794-1.C.269t.optimized
    +++ target-exceptions-pr118794-1.C.270t.optimized
    [...]
     __attribute__((omp declare target))
     void f ()
    [...]
       gimple_call <__dt_comp , NULL, &c>
    -  gimple_call <__builtin_eh_pointer, _7, 2>
    -  gimple_call <__builtin_unwind_resume, NULL, _7>
    +  gimple_call <__builtin_cxa_end_cleanup, NULL>

     }
    [...]

	PR target/118794
	libgomp/
	* testsuite/libgomp.c++/target-exceptions-pr118794-1.C: Adjust for
	'targetm.arm_eabi_unwinder'.
	* testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-GCN.C:
	Likewise.
	* testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-nvptx.C:
	Likewise.
---
 .../target-exceptions-pr118794-1-offload-sorry-GCN.C        | 6 ++++--
 .../target-exceptions-pr118794-1-offload-sorry-nvptx.C      | 6 ++++--
 .../testsuite/libgomp.c++/target-exceptions-pr118794-1.C    | 6 ++++--
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-GCN.C b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-GCN.C
index 3cdedf48529..d4dccf167fb 100644
--- a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-GCN.C
+++ b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-GCN.C
@@ -14,8 +14,10 @@
 
 /* In this specific C++ arrangement, distilled from PR118794, GCC synthesizes
    '__builtin_eh_pointer', '__builtin_unwind_resume' calls as dead code in 'f':
-   { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } }
-   { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } }
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } }
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } }
+   ..., just 'targetm.arm_eabi_unwinder' is different:
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_cxa_end_cleanup, } 1 optimized { target { arm_eabi || tic6x-*-* } } } }
    { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } }
    { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } }
    Given '-O0' and '-foffload-options=-mno-fake-exceptions', offload compilation fails:
diff --git a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-nvptx.C b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-nvptx.C
index ef996cfff7f..724e34bd923 100644
--- a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-nvptx.C
+++ b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-nvptx.C
@@ -14,8 +14,10 @@
 
 /* In this specific C++ arrangement, distilled from PR118794, GCC synthesizes
    '__builtin_eh_pointer', '__builtin_unwind_resume' calls as dead code in 'f':
-   { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } }
-   { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } }
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } }
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } }
+   ..., just 'targetm.arm_eabi_unwinder' is different:
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_cxa_end_cleanup, } 1 optimized { target { arm_eabi || tic6x-*-* } } } }
    { dg-final { only_for_offload_target nvptx-none scan-offload-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } }
    { dg-final { only_for_offload_target nvptx-none scan-offload-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } }
    Given '-O0' and '-foffload-options=-mno-fake-exceptions', offload compilation fails:
diff --git a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C
index 24e3d076a1b..24eb7a59c79 100644
--- a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C
+++ b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C
@@ -51,7 +51,9 @@ int main()
 
 /* In this specific C++ arrangement, distilled from PR118794, GCC synthesizes
    '__builtin_eh_pointer', '__builtin_unwind_resume' calls as dead code in 'f':
-   { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } }
-   { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } }
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } }
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } }
+   ..., just 'targetm.arm_eabi_unwinder' is different:
+   { dg-final { scan-tree-dump-times {gimple_call <__builtin_cxa_end_cleanup, } 1 optimized { target { arm_eabi || tic6x-*-* } } } }
    { dg-final { scan-offload-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } }
    { dg-final { scan-offload-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } } */
-- 
2.34.1

Reply via email to