This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[committed][libgomp, nvptx] Minimize lifetime of CUDA_ONE_CALL defines
- From: Tom de Vries <tdevries at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Jakub Jelinek <jakub at redhat dot com>
- Date: Tue, 7 Aug 2018 00:21:31 +0200
- Subject: [committed][libgomp, nvptx] Minimize lifetime of CUDA_ONE_CALL defines
Hi,
This patch makes sure that the lifetimes of the CUDA_ONE_CALL macro (which is
defined twice in plugin-nvptx.c) are minimized, to make it obvious that the
definitions are used only in the lib-cuda.def include.
Build on x86_64 with nvptx accelerator and reg-tested libgomp.
Committed to trunk.
Thanks,
- Tom
[libgomp, nvptx] Minimize lifetime of CUDA_ONE_CALL defines
2018-08-06 Tom de Vries <tdevries@suse.de>
* plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put
CUDA_ONE_CALL defines right before the cuda-lib.def include, and the
corresponding undefs right after.
---
libgomp/plugin/plugin-nvptx.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index cc465b4addb2..2e72a6379eb9 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -52,10 +52,13 @@
#if PLUGIN_NVPTX_DYNAMIC
# include <dlfcn.h>
-# define CUDA_ONE_CALL(call) \
- __typeof (call) *call;
struct cuda_lib_s {
+
+# define CUDA_ONE_CALL(call) \
+ __typeof (call) *call;
#include "cuda-lib.def"
+# undef CUDA_ONE_CALL
+
} cuda_lib;
/* -1 if init_cuda_lib has not been called yet, false
@@ -74,18 +77,19 @@ init_cuda_lib (void)
cuda_lib_inited = false;
if (h == NULL)
return false;
-# undef CUDA_ONE_CALL
+
# define CUDA_ONE_CALL(call) CUDA_ONE_CALL_1 (call)
# define CUDA_ONE_CALL_1(call) \
cuda_lib.call = dlsym (h, #call); \
if (cuda_lib.call == NULL) \
return false;
#include "cuda-lib.def"
+# undef CUDA_ONE_CALL
+# undef CUDA_ONE_CALL_1
+
cuda_lib_inited = true;
return true;
}
-# undef CUDA_ONE_CALL
-# undef CUDA_ONE_CALL_1
# define CUDA_CALL_PREFIX cuda_lib.
#else
# define CUDA_CALL_PREFIX