This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

libgomp: Normalize the names of a few functions of the libgomp plugin API (was: libgomp: Provide prototypes for functions implemented by libgomp plugins)


Hi!

On Tue, 31 Jan 2017 15:44:46 +0100, I wrote:
> --- libgomp/libgomp.h
> +++ libgomp/libgomp.h
> @@ -882,31 +882,35 @@ typedef struct acc_dispatch_t

> +  __typeof (GOMP_OFFLOAD_openacc_parallel) *exec_func;

As can be seen here, for a handful of functions, the name of the
implementation in the plugins ("GOMP_OFFLOAD_openacc_parallel") doesn't
match the name used in libgomp proper ("openacc.exec_func").  Here is a
patch to adjust these.  OK for trunk?  If not now, then in next stage 1?

commit 4dc0a9c9a6a1d67e298b254d9c1aa7592db5c763
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Thu Jan 26 20:18:30 2017 +0100

    libgomp: Normalize the names of a few functions of the libgomp plugin API
    
            libgomp/
            * libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to
            GOMP_OFFLOAD_openacc_exec.  Adjust all users.
            (GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to
            GOMP_OFFLOAD_openacc_cuda_get_current_device.  Adjust all users.
            (GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to
            GOMP_OFFLOAD_openacc_cuda_get_current_context.  Adjust all users.
            (GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to
            GOMP_OFFLOAD_openacc_cuda_get_stream.  Adjust all users.
            (GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to
            GOMP_OFFLOAD_openacc_cuda_set_stream.  Adjust all users.
---
 libgomp/ChangeLog             | 11 +++++++++++
 libgomp/libgomp-plugin.h      | 12 ++++++------
 libgomp/libgomp.h             | 10 +++++-----
 libgomp/plugin/plugin-nvptx.c | 14 +++++++-------
 libgomp/target.c              | 10 +++++-----
 5 files changed, 34 insertions(+), 23 deletions(-)

diff --git libgomp/ChangeLog libgomp/ChangeLog
[snipped]
diff --git libgomp/libgomp-plugin.h libgomp/libgomp-plugin.h
index fba45ee..ff81350 100644
--- libgomp/libgomp-plugin.h
+++ libgomp/libgomp-plugin.h
@@ -93,8 +93,8 @@ extern bool GOMP_OFFLOAD_dev2dev (int, void *, const void *, size_t);
 extern bool GOMP_OFFLOAD_can_run (void *);
 extern void GOMP_OFFLOAD_run (int, void *, void *, void **);
 extern void GOMP_OFFLOAD_async_run (int, void *, void *, void **, void *);
-extern void GOMP_OFFLOAD_openacc_parallel (void (*) (void *), size_t, void **,
-					   void **, int, unsigned *, void *);
+extern void GOMP_OFFLOAD_openacc_exec (void (*) (void *), size_t, void **,
+				       void **, int, unsigned *, void *);
 extern void GOMP_OFFLOAD_openacc_register_async_cleanup (void *, int);
 extern int GOMP_OFFLOAD_openacc_async_test (int);
 extern int GOMP_OFFLOAD_openacc_async_test_all (void);
@@ -105,10 +105,10 @@ extern void GOMP_OFFLOAD_openacc_async_wait_all_async (int);
 extern void GOMP_OFFLOAD_openacc_async_set_async (int);
 extern void *GOMP_OFFLOAD_openacc_create_thread_data (int);
 extern void GOMP_OFFLOAD_openacc_destroy_thread_data (void *);
-extern void *GOMP_OFFLOAD_openacc_get_current_cuda_device (void);
-extern void *GOMP_OFFLOAD_openacc_get_current_cuda_context (void);
-extern void *GOMP_OFFLOAD_openacc_get_cuda_stream (int);
-extern int GOMP_OFFLOAD_openacc_set_cuda_stream (int, void *);
+extern void *GOMP_OFFLOAD_openacc_cuda_get_current_device (void);
+extern void *GOMP_OFFLOAD_openacc_cuda_get_current_context (void);
+extern void *GOMP_OFFLOAD_openacc_cuda_get_stream (int);
+extern int GOMP_OFFLOAD_openacc_cuda_set_stream (int, void *);
 
 #ifdef __cplusplus
 }
diff --git libgomp/libgomp.h libgomp/libgomp.h
index 6dfe9aa..1769a48 100644
--- libgomp/libgomp.h
+++ libgomp/libgomp.h
@@ -882,7 +882,7 @@ typedef struct acc_dispatch_t
   struct target_mem_desc *data_environ;
 
   /* Execute.  */
-  __typeof (GOMP_OFFLOAD_openacc_parallel) *exec_func;
+  __typeof (GOMP_OFFLOAD_openacc_exec) *exec_func;
 
   /* Async cleanup callback registration.  */
   __typeof (GOMP_OFFLOAD_openacc_register_async_cleanup)
@@ -905,12 +905,12 @@ typedef struct acc_dispatch_t
 
   /* NVIDIA target specific routines.  */
   struct {
-    __typeof (GOMP_OFFLOAD_openacc_get_current_cuda_device)
+    __typeof (GOMP_OFFLOAD_openacc_cuda_get_current_device)
       *get_current_device_func;
-    __typeof (GOMP_OFFLOAD_openacc_get_current_cuda_context)
+    __typeof (GOMP_OFFLOAD_openacc_cuda_get_current_context)
       *get_current_context_func;
-    __typeof (GOMP_OFFLOAD_openacc_get_cuda_stream) *get_stream_func;
-    __typeof (GOMP_OFFLOAD_openacc_set_cuda_stream) *set_stream_func;
+    __typeof (GOMP_OFFLOAD_openacc_cuda_get_stream) *get_stream_func;
+    __typeof (GOMP_OFFLOAD_openacc_cuda_set_stream) *set_stream_func;
   } cuda;
 } acc_dispatch_t;
 
diff --git libgomp/plugin/plugin-nvptx.c libgomp/plugin/plugin-nvptx.c
index 4144218..0284c7f 100644
--- libgomp/plugin/plugin-nvptx.c
+++ libgomp/plugin/plugin-nvptx.c
@@ -1922,9 +1922,9 @@ GOMP_OFFLOAD_dev2dev (int ord, void *dst, const void *src, size_t n)
 void (*device_run) (int n, void *fn_ptr, void *vars) = NULL;
 
 void
-GOMP_OFFLOAD_openacc_parallel (void (*fn) (void *), size_t mapnum,
-			       void **hostaddrs, void **devaddrs,
-			       int async, unsigned *dims, void *targ_mem_desc)
+GOMP_OFFLOAD_openacc_exec (void (*fn) (void *), size_t mapnum,
+			   void **hostaddrs, void **devaddrs,
+			   int async, unsigned *dims, void *targ_mem_desc)
 {
   nvptx_exec (fn, mapnum, hostaddrs, devaddrs, async, dims, targ_mem_desc);
 }
@@ -2014,13 +2014,13 @@ GOMP_OFFLOAD_openacc_destroy_thread_data (void *data)
 }
 
 void *
-GOMP_OFFLOAD_openacc_get_current_cuda_device (void)
+GOMP_OFFLOAD_openacc_cuda_get_current_device (void)
 {
   return nvptx_get_current_cuda_device ();
 }
 
 void *
-GOMP_OFFLOAD_openacc_get_current_cuda_context (void)
+GOMP_OFFLOAD_openacc_cuda_get_current_context (void)
 {
   return nvptx_get_current_cuda_context ();
 }
@@ -2028,7 +2028,7 @@ GOMP_OFFLOAD_openacc_get_current_cuda_context (void)
 /* NOTE: This returns a CUstream, not a ptx_stream pointer.  */
 
 void *
-GOMP_OFFLOAD_openacc_get_cuda_stream (int async)
+GOMP_OFFLOAD_openacc_cuda_get_stream (int async)
 {
   return nvptx_get_cuda_stream (async);
 }
@@ -2036,7 +2036,7 @@ GOMP_OFFLOAD_openacc_get_cuda_stream (int async)
 /* NOTE: This takes a CUstream, not a ptx_stream pointer.  */
 
 int
-GOMP_OFFLOAD_openacc_set_cuda_stream (int async, void *stream)
+GOMP_OFFLOAD_openacc_cuda_set_stream (int async, void *stream)
 {
   return nvptx_set_cuda_stream (async, stream);
 }
diff --git libgomp/target.c libgomp/target.c
index 26d5aba..3dd119f 100644
--- libgomp/target.c
+++ libgomp/target.c
@@ -2399,7 +2399,7 @@ gomp_load_plugin_for_device (struct gomp_device_descr *device,
     }
   if (device->capabilities & GOMP_OFFLOAD_CAP_OPENACC_200)
     {
-      if (!DLSYM_OPT (openacc.exec, openacc_parallel)
+      if (!DLSYM_OPT (openacc.exec, openacc_exec)
 	  || !DLSYM_OPT (openacc.register_async_cleanup,
 			 openacc_register_async_cleanup)
 	  || !DLSYM_OPT (openacc.async_test, openacc_async_test)
@@ -2423,11 +2423,11 @@ gomp_load_plugin_for_device (struct gomp_device_descr *device,
 
       unsigned cuda = 0;
       cuda += DLSYM_OPT (openacc.cuda.get_current_device,
-			 openacc_get_current_cuda_device);
+			 openacc_cuda_get_current_device);
       cuda += DLSYM_OPT (openacc.cuda.get_current_context,
-			 openacc_get_current_cuda_context);
-      cuda += DLSYM_OPT (openacc.cuda.get_stream, openacc_get_cuda_stream);
-      cuda += DLSYM_OPT (openacc.cuda.set_stream, openacc_set_cuda_stream);
+			 openacc_cuda_get_current_context);
+      cuda += DLSYM_OPT (openacc.cuda.get_stream, openacc_cuda_get_stream);
+      cuda += DLSYM_OPT (openacc.cuda.set_stream, openacc_cuda_set_stream);
       if (cuda && cuda != 4)
 	{
 	  /* Make sure all the CUDA functions are there if any of them are.  */


Grüße
 Thomas


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]