]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Add caveat/safeguard to OpenMP: Handle descriptors in target's firstprivate [PR104949]
authorThomas Schwinge <thomas@codesourcery.com>
Thu, 23 Mar 2023 11:32:35 +0000 (12:32 +0100)
committerThomas Schwinge <thomas@codesourcery.com>
Fri, 24 Mar 2023 16:20:47 +0000 (17:20 +0100)
Follow-up to commit 49d1a2f91325fa8cc011149e27e5093a988b3a49
"OpenMP: Handle descriptors in target's firstprivate [PR104949]".

PR fortran/104949
libgomp/
* target.c (gomp_map_vars_internal) <GOMP_MAP_FIRSTPRIVATE>: Add
caveat/safeguard.

(cherry picked from commit e8fec6998b656dac02d4bc6c69b35a0fb5611e87)

libgomp/ChangeLog.omp
libgomp/target.c

index fb352b39a6d016cdffdb6cc72c9367a601b5ac71..63d1f563d5d45e16d9126c105df0e7dbc049b9f9 100644 (file)
@@ -1,5 +1,12 @@
 2023-03-24  Thomas Schwinge  <thomas@codesourcery.com>
 
+       Backported from master:
+       2023-03-24  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR fortran/104949
+       * target.c (gomp_map_vars_internal) <GOMP_MAP_FIRSTPRIVATE>: Add
+       caveat/safeguard.
+
        * target.c (gomp_target_rev): Instead of 'dev_to_host_cpy',
        'host_to_dev_cpy', 'token', take a single 'goacc_asyncqueue'.
        * libgomp.h (gomp_target_rev): Adjust.
index 2f53f056e538e8e0158c83180492f8c4ff3498b6..de3facb6428f029d8af371b0a61529b2680ee326 100644 (file)
@@ -1482,6 +1482,11 @@ gomp_map_vars_internal (struct gomp_device_descr *devicep,
                  {
                    uintptr_t target = (uintptr_t) hostaddrs[i];
                    void *devptr = *(void**) hostaddrs[i+1] + sizes[i+1];
+                   /* Per
+                      <https://inbox.sourceware.org/gcc-patches/87o7pe12ke.fsf@euler.schwinge.homeip.net>
+                      "OpenMP: Handle descriptors in target's firstprivate [PR104949]"
+                      this probably needs revision for 'aq' usage.  */
+                   assert (!aq);
                    gomp_copy_host2dev (devicep, aq, devptr, &target,
                                        sizeof (void *), false, cbufp);
                    ++i;