https://gcc.gnu.org/g:130451de0f379ff2097f1f4cbacd5dc2152baf84

commit 130451de0f379ff2097f1f4cbacd5dc2152baf84
Author: Thomas Schwinge <tho...@codesourcery.com>
Date:   Sat Apr 12 17:52:13 2025 +0000

    libgomp: Merge 'gomp_map_vars_openacc' into 'goacc_map_vars' [PR76739]
    
    Upstream has 'goacc_map_vars'; merge the new 'gomp_map_vars_openacc' into 
it.
    (Maybe the latter didn't exist yet when the former was originally added?)
    No functional change.
    
    Clean-up for og12 commit 15d0f61a7fecdc8fd12857c40879ea3730f6d99f
    "Merge non-contiguous array support patches".
    
    libgomp/ChangeLog
            PR other/76739
            * libgomp.h (goacc_map_vars): Add 'struct goacc_ncarray_info *'
            formal parameter.
            (gomp_map_vars_openacc): Remove.
            * target.c (goacc_map_vars): Adjust.
            (gomp_map_vars_openacc): Remove.
            * oacc-mem.c (acc_map_data, goacc_enter_datum)
            (goacc_enter_data_internal): Adjust.
            * oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start):
            Adjust.

Diff:
---
 libgomp/libgomp.h       |  9 ++++-----
 libgomp/oacc-mem.c      |  8 ++++----
 libgomp/oacc-parallel.c | 10 +++++-----
 libgomp/target.c        | 17 +++--------------
 4 files changed, 16 insertions(+), 28 deletions(-)

diff --git a/libgomp/libgomp.h b/libgomp/libgomp.h
index 326efcc46726..34a41e86565e 100644
--- a/libgomp/libgomp.h
+++ b/libgomp/libgomp.h
@@ -1475,15 +1475,14 @@ extern void gomp_attach_pointer (struct 
gomp_device_descr *,
 extern void gomp_detach_pointer (struct gomp_device_descr *,
                                 struct goacc_asyncqueue *, splay_tree_key,
                                 uintptr_t, bool, struct gomp_coalesce_buf *);
+struct goacc_ncarray_info;
 extern struct target_mem_desc *goacc_map_vars (struct gomp_device_descr *,
                                               struct goacc_asyncqueue *,
                                               size_t, void **, void **,
-                                              size_t *, void *, bool,
+                                              size_t *, void *,
+                                              struct goacc_ncarray_info *,
+                                              bool,
                                               enum gomp_map_vars_kind);
-extern struct target_mem_desc *gomp_map_vars_openacc (struct gomp_device_descr 
*,
-                                                     struct goacc_asyncqueue *,
-                                                     size_t, void **, size_t *,
-                                                     unsigned short *, void *);
 extern void goacc_unmap_vars (struct target_mem_desc *, bool,
                              struct goacc_asyncqueue *);
 extern void gomp_init_device (struct gomp_device_descr *);
diff --git a/libgomp/oacc-mem.c b/libgomp/oacc-mem.c
index 718252b44ba7..6062f2061a26 100644
--- a/libgomp/oacc-mem.c
+++ b/libgomp/oacc-mem.c
@@ -403,7 +403,7 @@ acc_map_data (void *h, void *d, size_t s)
 
       struct target_mem_desc *tgt
        = goacc_map_vars (acc_dev, NULL, mapnum, &hostaddrs, &devaddrs, &sizes,
-                         &kinds, true, GOMP_MAP_VARS_ENTER_DATA);
+                         &kinds, NULL, true, GOMP_MAP_VARS_ENTER_DATA);
       assert (tgt);
       assert (tgt->list_count == 1);
       splay_tree_key n = tgt->list[0].key;
@@ -568,7 +568,7 @@ goacc_enter_datum (void **hostaddrs, size_t *sizes, void 
*kinds, int async)
 
       struct target_mem_desc *tgt
        = goacc_map_vars (acc_dev, aq, mapnum, hostaddrs, NULL, sizes,
-                         kinds, true, GOMP_MAP_VARS_ENTER_DATA);
+                         kinds, NULL, true, GOMP_MAP_VARS_ENTER_DATA);
       assert (tgt);
       assert (tgt->list_count == 1);
       n = tgt->list[0].key;
@@ -1206,7 +1206,7 @@ goacc_enter_data_internal (struct gomp_device_descr 
*acc_dev, size_t mapnum,
              gomp_mutex_unlock (&acc_dev->lock);
              struct target_mem_desc *tgt_ __attribute__((unused))
                = goacc_map_vars (acc_dev, aq, groupnum, &hostaddrs[i], NULL,
-                                 &sizes[i], &kinds[i], true,
+                                 &sizes[i], &kinds[i], NULL, true,
                                  GOMP_MAP_VARS_ENTER_DATA);
              assert (tgt_ == NULL);
              gomp_mutex_lock (&acc_dev->lock);
@@ -1257,7 +1257,7 @@ goacc_enter_data_internal (struct gomp_device_descr 
*acc_dev, size_t mapnum,
 
          struct target_mem_desc *tgt
            = goacc_map_vars (acc_dev, aq, groupnum, &hostaddrs[i], NULL,
-                             &sizes[i], &kinds[i], true,
+                             &sizes[i], &kinds[i], NULL, true,
                              GOMP_MAP_VARS_ENTER_DATA);
          assert (tgt);
 
diff --git a/libgomp/oacc-parallel.c b/libgomp/oacc-parallel.c
index 3ed099f35b91..ca6e40b310cd 100644
--- a/libgomp/oacc-parallel.c
+++ b/libgomp/oacc-parallel.c
@@ -468,8 +468,8 @@ GOACC_parallel_keyed (int flags_m, void (*fn) (void *),
   goacc_aq aq = get_goacc_asyncqueue (async);
 
   struct target_mem_desc *tgt
-      = gomp_map_vars_openacc (acc_dev, aq, mapnum, hostaddrs, sizes, kinds,
-                              nca_info);
+      = goacc_map_vars (acc_dev, aq, mapnum, hostaddrs, NULL, sizes, kinds,
+                       nca_info, true, GOMP_MAP_VARS_TARGET);
   free (nca_info);
 
   if (profiling_p)
@@ -631,7 +631,7 @@ GOACC_data_start (int flags_m, size_t mapnum,
     {
       prof_info.device_type = acc_device_host;
       api_info.device_type = prof_info.device_type;
-      tgt = gomp_map_vars_openacc (NULL, NULL, 0, NULL, NULL, NULL, NULL);
+      tgt = goacc_map_vars (NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, true, 
0);
       tgt->prev = thr->mapped_data;
       thr->mapped_data = tgt;
 
@@ -648,8 +648,8 @@ GOACC_data_start (int flags_m, size_t mapnum,
     }
 
   gomp_debug (0, "  %s: prepare mappings\n", __FUNCTION__);
-  tgt = gomp_map_vars_openacc (acc_dev, NULL, mapnum, hostaddrs, sizes, kinds,
-                              nca_info);
+  tgt = goacc_map_vars (acc_dev, NULL, mapnum, hostaddrs, NULL, sizes, kinds,
+                       nca_info, true, 0);
   free (nca_info);
   gomp_debug (0, "  %s: mappings prepared\n", __FUNCTION__);
   tgt->prev = thr->mapped_data;
diff --git a/libgomp/target.c b/libgomp/target.c
index d7a5ad6c330b..9a16c2af8013 100644
--- a/libgomp/target.c
+++ b/libgomp/target.c
@@ -2049,18 +2049,6 @@ gomp_map_vars_internal (struct gomp_device_descr 
*devicep,
   return tgt;
 }
 
-attribute_hidden struct target_mem_desc *
-gomp_map_vars_openacc (struct gomp_device_descr *devicep,
-                      struct goacc_asyncqueue *aq, size_t mapnum,
-                      void **hostaddrs, size_t *sizes, unsigned short *kinds,
-                      void *nca_info)
-{
-  return gomp_map_vars_internal (devicep, aq, mapnum, hostaddrs, NULL,
-                                sizes, (void *) kinds,
-                                (struct goacc_ncarray_info *) nca_info,
-                                true, NULL, GOMP_MAP_VARS_OPENACC);
-}
-
 static struct target_mem_desc *
 gomp_map_vars (struct gomp_device_descr *devicep, size_t mapnum,
               void **hostaddrs, void **devaddrs, size_t *sizes, void *kinds,
@@ -2090,11 +2078,12 @@ attribute_hidden struct target_mem_desc *
 goacc_map_vars (struct gomp_device_descr *devicep,
                struct goacc_asyncqueue *aq, size_t mapnum,
                void **hostaddrs, void **devaddrs, size_t *sizes,
-               void *kinds, bool short_mapkind,
+               void *kinds, struct goacc_ncarray_info *nca_info,
+               bool short_mapkind,
                enum gomp_map_vars_kind pragma_kind)
 {
   return gomp_map_vars_internal (devicep, aq, mapnum, hostaddrs, devaddrs,
-                                sizes, kinds, NULL, short_mapkind, NULL,
+                                sizes, kinds, nca_info, short_mapkind, NULL,
                                 GOMP_MAP_VARS_OPENACC | pragma_kind);
 }

Reply via email to