diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2015-07-21 13:30:06 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2015-07-21 13:30:06 +0000 |
commit | 22be23495a1f0cd1ae6a1aca32c39edb9f7a9c51 (patch) | |
tree | 5346a618826d07eaa35796ae94daf5f43300dc8a /gcc | |
parent | c5189d8e679126d652b23761fb95bc5042c19ea9 (diff) | |
download | gcc-22be23495a1f0cd1ae6a1aca32c39edb9f7a9c51.zip gcc-22be23495a1f0cd1ae6a1aca32c39edb9f7a9c51.tar.gz gcc-22be23495a1f0cd1ae6a1aca32c39edb9f7a9c51.tar.bz2 |
target.c (gomp_offload_image_to_device): Rename to ...
libgomp/
* target.c (gomp_offload_image_to_device): Rename to ...
(gomp_load_image_to_device): ... here.
(GOMP_offload_register): Adjust call.
(gomp_init_device): Likewise.
(gomp_unload_image_from_device): New. Broken out of ...
(GOMP_offload_unregister): ... here. Call it.
(gomp_unload_device): New.
* libgomp.h (gomp_unload_device): Declare.
* oacc-init.c (acc_shutdown_1): Unload from device before deleting
mem maps.
gcc/
* config/nvptx/mkoffload.c (process): Add static destructor call.
From-SVN: r226039
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/nvptx/mkoffload.c | 21 |
2 files changed, 20 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4ede939..69e5bbe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2015-07-21 Nathan Sidwell <nathan@codesourcery.com> + + * config/nvptx/mkoffload.c (process): Add static destructor call. + 2015-07-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR middle-end/66915 diff --git a/gcc/config/nvptx/mkoffload.c b/gcc/config/nvptx/mkoffload.c index ab38179..1e154c8 100644 --- a/gcc/config/nvptx/mkoffload.c +++ b/gcc/config/nvptx/mkoffload.c @@ -880,18 +880,29 @@ process (FILE *in, FILE *out) fprintf (out, "#ifdef __cplusplus\n" "extern \"C\" {\n" "#endif\n"); + fprintf (out, "extern void GOMP_offload_register" " (const void *, int, const void *);\n"); + fprintf (out, "extern void GOMP_offload_unregister" + " (const void *, int, const void *);\n"); + fprintf (out, "#ifdef __cplusplus\n" "}\n" "#endif\n"); fprintf (out, "extern const void *const __OFFLOAD_TABLE__[];\n\n"); - fprintf (out, "static __attribute__((constructor)) void init (void)\n{\n"); - fprintf (out, " GOMP_offload_register (__OFFLOAD_TABLE__, %d,\n", - GOMP_DEVICE_NVIDIA_PTX); - fprintf (out, " &target_data);\n"); - fprintf (out, "};\n"); + + fprintf (out, "static __attribute__((constructor)) void init (void)\n" + "{\n" + " GOMP_offload_register (__OFFLOAD_TABLE__, %d/*NVIDIA_PTX*/,\n" + " &target_data);\n" + "};\n", GOMP_DEVICE_NVIDIA_PTX); + + fprintf (out, "static __attribute__((destructor)) void fini (void)\n" + "{\n" + " GOMP_offload_unregister (__OFFLOAD_TABLE__, %d/*NVIDIA_PTX*/,\n" + " &target_data);\n" + "};\n", GOMP_DEVICE_NVIDIA_PTX); } static void |