[OG12] libgomp.c-c++-common/requires-4.c: dg-xfail-run-if for USM with -foffload-memory=

Message ID 3df859fd-fb25-1930-5448-33299b51549a@codesourcery.com
State New
Headers
Series [OG12] libgomp.c-c++-common/requires-4.c: dg-xfail-run-if for USM with -foffload-memory= |

Commit Message

Tobias Burnus Oct. 20, 2022, 5:38 p.m. UTC
  Follow up to the mainline commit (https://gcc.gnu.org/r13-3407 + backported to OG12):
"libgomp: Add offload_device_gcn check, add requires-4a.c test"

This xfails requires-4.c on pseudo-USM systems.

As mentioned in the email for that patch OG12's unified-share memory
implemention is for pseudo-USM systems where only specially allocated
memory (managed, pinned) is device accessible. - Thus, requires4.c
failed as it used static memory. (requires4a.c works as it uses
heap-allocated memory.)

Tobias

PS: For USM in mainline, see patch submission at https://gcc.gnu.org/pipermail/gcc-patches/2022-July/597976.html
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  

Patch

commit 0c47ae1c9283a812f832e80e451bfa82519c21e8
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Thu Oct 20 13:25:25 2022 +0200

    libgomp.c-c++-common/requires-4.c: dg-xfail-run-if for USM with -foffload-memory=
    
    The USM implementation uses -foffload-memory=... which allocates variables
    in a special memory. This does not support static variables. Hence, XFAIL
    this test on nvptx/gcn. The requires-4a.c testcase tests the same but uses
    hash memory instead.
    
    libgomp/
            * testsuite/libgomp.c-c++-common/requires-4.c: dg-xfail-run-if on
            nvptx and gcn.
---
 libgomp/testsuite/libgomp.c-c++-common/requires-4.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libgomp/testsuite/libgomp.c-c++-common/requires-4.c b/libgomp/testsuite/libgomp.c-c++-common/requires-4.c
index 5883eff0d93..c6b28d5442f 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/requires-4.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/requires-4.c
@@ -2,6 +2,8 @@ 
 /* { dg-additional-options "-foffload-options=nvptx-none=-misa=sm_35" { target { offload_target_nvptx } } } */
 /* { dg-additional-sources requires-4-aux.c } */
 
+/* { dg-xfail-run-if "USM via -foffload-memory=... does not support static variables" { offload_device_nvptx || offload_device_gcn } } */
+
 /* Check no diagnostic by device-compiler's or host compiler's lto1.
    Other file uses: 'requires reverse_offload', but that's inactive as
    there are no declare target directives, device constructs nor device routines  */