diff mbox series

OpenACC privatization diagnostics vs. 'assert' [PR102841]

Message ID 87v8wel0d8.fsf@euler.schwinge.homeip.net
State New
Headers show
Series OpenACC privatization diagnostics vs. 'assert' [PR102841] | expand

Commit Message

Thomas Schwinge March 16, 2022, 9:20 a.m. UTC
Hi!

On 2021-05-21T21:29:19+0200, I wrote:
> I've pushed "[OpenACC privatization] Largely extend diagnostics and
> corresponding testsuite coverage [PR90115]" to master branch in commit
> 11b8286a83289f5b54e813f14ff56d730c3f3185

Pushed to master branch commit ab46fc7c3bf01337ea4554f08f4f6b0be8173557
"OpenACC privatization diagnostics vs. 'assert' [PR102841]", see
attached.


Grüße
 Thomas


> --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
> @@ -1,6 +1,11 @@
> -/* { dg-do run } */
> -
>  /* Test if, if_present clauses on host_data construct.  */
> +
> +/* { dg-additional-options "-fopt-info-all-omp" }
> +   { dg-additional-options "--param=openacc-privatization=noisy" }
> +   { dg-additional-options "-foffload=-fopt-info-all-omp" }
> +   { dg-additional-options "-foffload=--param=openacc-privatization=noisy" }
> +   for testing/documenting aspects of that functionality.  */
> +
>  /* C/C++ variant of 'libgomp.oacc-fortran/host_data-5.F90' */
>
>  #include <assert.h>
> @@ -14,15 +19,19 @@ foo (float *p, intptr_t host_p, int cond)
>  #pragma acc data copyin(host_p)
>    {
>  #pragma acc host_data use_device(p) if_present
> +    /* { dg-note {variable 'host_p\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } */
>      /* p not mapped yet, so it will be equal to the host pointer.  */
>      assert (p == (float *) host_p);
>
>  #pragma acc data copy(p[0:100])
> +    /* { dg-note {variable 'host_p\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } */
> +    /* { dg-note {variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-2 } */
>      {
>        /* Not inside a host_data construct, so p is still the host pointer.  */
>        assert (p == (float *) host_p);
>
>  #pragma acc host_data use_device(p)
> +      /* { dg-note {variable 'host_p\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } */
>        {
>  #if ACC_MEM_SHARED
>       assert (p == (float *) host_p);
> @@ -33,6 +42,7 @@ foo (float *p, intptr_t host_p, int cond)
>        }
>
>  #pragma acc host_data use_device(p) if_present
> +      /* { dg-note {variable 'host_p\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } */
>        {
>  #if ACC_MEM_SHARED
>       assert (p == (float *) host_p);
> @@ -43,6 +53,8 @@ foo (float *p, intptr_t host_p, int cond)
>        }
>
>  #pragma acc host_data use_device(p) if(cond)
> +      /* { dg-note {variable 'host_p\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } */
> +      /* { dg-note {variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target { ! openacc_host_selected } } .-2 } */
>        {
>  #if ACC_MEM_SHARED
>       assert (p == (float *) host_p);


-----------------
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
diff mbox series

Patch

From ab46fc7c3bf01337ea4554f08f4f6b0be8173557 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Wed, 16 Mar 2022 08:02:39 +0100
Subject: [PATCH] OpenACC privatization diagnostics vs. 'assert' [PR102841]

It's an orthogonal concern why these diagnostics do appear at all for
non-offloaded OpenACC constructs (where they're not relevant at all); PR90115.

Depending on how 'assert' is implemented, it may cause temporaries to be
created, and/or may lower into 'COND_EXPR's, and
'gcc/gimplify.cc:gimplify_cond_expr' uses 'create_tmp_var (type, "iftmp")'.

Fix-up for commit 11b8286a83289f5b54e813f14ff56d730c3f3185
"[OpenACC privatization] Largely extend diagnostics and
corresponding testsuite coverage [PR90115]".

	PR testsuite/102841
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/host_data-7.c: Adjust.
---
 libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
index 66501e614fb..50b4fc264d0 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
@@ -4,7 +4,9 @@ 
    { dg-additional-options "--param=openacc-privatization=noisy" }
    { dg-additional-options "-foffload=-fopt-info-all-omp" }
    { dg-additional-options "-foffload=--param=openacc-privatization=noisy" }
-   for testing/documenting aspects of that functionality.  */
+   Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types) or 'assert' implementation:
+   { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} }
+   { dg-prune-output {note: variable 'iftmp\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */
 
 /* C/C++ variant of 'libgomp.oacc-fortran/host_data-5.F90' */
 
@@ -25,7 +27,6 @@  foo (float *p, intptr_t host_p, int cond)
 
 #pragma acc data copy(p[0:100])
     /* { dg-note {variable 'host_p\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } */
-    /* { dg-note {variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-2 } */
     {
       /* Not inside a host_data construct, so p is still the host pointer.  */
       assert (p == (float *) host_p);
@@ -54,7 +55,6 @@  foo (float *p, intptr_t host_p, int cond)
 
 #pragma acc host_data use_device(p) if(cond)
       /* { dg-note {variable 'host_p\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } */
-      /* { dg-note {variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target { ! openacc_host_selected } } .-2 } */
       {
 #if ACC_MEM_SHARED
 	assert (p == (float *) host_p);
-- 
2.34.1