diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2015-08-10 18:48:26 +0200 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gcc.gnu.org> | 2015-08-10 18:48:26 +0200 |
commit | b97e78b712b21e558a112b7bc683bf05ca7cdcc9 (patch) | |
tree | 5b850fb18324259a3fae0131aac6dfa6b6f028fc /libgomp/plugin | |
parent | 44a7d18d95a01b37da666a38188201805c6b578d (diff) | |
download | gcc-b97e78b712b21e558a112b7bc683bf05ca7cdcc9.zip gcc-b97e78b712b21e558a112b7bc683bf05ca7cdcc9.tar.gz gcc-b97e78b712b21e558a112b7bc683bf05ca7cdcc9.tar.bz2 |
[PR libgomp/65742, PR middle-end/66332] libgomp: Remove plugin for non-shared memory host execution
gcc/
* builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
open-coded sequence.
* omp-low.c (oacc_process_reduction_data): Remove handline of
GOMP_DEVICE_HOST_NONSHM.
gcc/testsuite/
* c-c++-common/goacc/acc_on_device-2.c: Remove XFAIL for C.
include/
* gomp-constants.c (GOMP_DEVICE_HOST_NONSHM): Remove.
libgomp/
* libgomp-plugin.h (enum offload_target_type): Remove
OFFLOAD_TARGET_TYPE_HOST_NONSHM.
* openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
* openacc.h (enum acc_device_t): Likewise.
* openacc_lib.h: Likewise.
* oacc-init.c (name_of_acc_device_t): Don't handle it.
(acc_on_device): Just use __builtin_acc_on_device.
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
of acc_on_device builtin.
* plugin/plugin-host.h: Remove file.
* plugin/plugin-host.c: Likewise, but salvage some content into...
* oacc-host.c: ... this file.
* plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
* plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
* Makefile.in: Regenerate.
* configure: Likewise.
* testsuite/lib/libgomp.exp
(check_effective_target_openacc_host_nonshm_selected): Remove.
* testsuite/libgomp.oacc-c++/c++.exp: Don't handle
ACC_DEVICE_TYPE=host_nonshm.
* testsuite/libgomp.oacc-c/c.exp: Likewise.
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
From-SVN: r226763
Diffstat (limited to 'libgomp/plugin')
-rw-r--r-- | libgomp/plugin/Makefrag.am | 9 | ||||
-rw-r--r-- | libgomp/plugin/configfrag.ac | 1 | ||||
-rw-r--r-- | libgomp/plugin/plugin-host.c | 259 | ||||
-rw-r--r-- | libgomp/plugin/plugin-host.h | 37 |
4 files changed, 0 insertions, 306 deletions
diff --git a/libgomp/plugin/Makefrag.am b/libgomp/plugin/Makefrag.am index 167485f..745becd 100644 --- a/libgomp/plugin/Makefrag.am +++ b/libgomp/plugin/Makefrag.am @@ -38,12 +38,3 @@ libgomp_plugin_nvptx_la_LDFLAGS += $(PLUGIN_NVPTX_LDFLAGS) libgomp_plugin_nvptx_la_LIBADD = libgomp.la $(PLUGIN_NVPTX_LIBS) libgomp_plugin_nvptx_la_LIBTOOLFLAGS = --tag=disable-static endif - -libgomp_plugin_host_nonshm_version_info = -version-info $(libtool_VERSION) -toolexeclib_LTLIBRARIES += libgomp-plugin-host_nonshm.la -libgomp_plugin_host_nonshm_la_SOURCES = plugin/plugin-host.c -libgomp_plugin_host_nonshm_la_CPPFLAGS = $(AM_CPPFLAGS) -DHOST_NONSHM_PLUGIN -libgomp_plugin_host_nonshm_la_LDFLAGS = \ - $(libgomp_plugin_host_nonshm_version_info) $(lt_host_flags) -libgomp_plugin_host_nonshm_la_LIBADD = libgomp.la -libgomp_plugin_host_nonshm_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/libgomp/plugin/configfrag.ac b/libgomp/plugin/configfrag.ac index 254c688..8c2a420 100644 --- a/libgomp/plugin/configfrag.ac +++ b/libgomp/plugin/configfrag.ac @@ -33,7 +33,6 @@ AC_CHECK_LIB(dl, dlsym, , [plugin_support=no]) if test x"$plugin_support" = xyes; then AC_DEFINE(PLUGIN_SUPPORT, 1, [Define if all infrastructure, needed for plugins, is supported.]) - offload_targets=host_nonshm elif test "x${enable_offload_targets-no}" != xno; then AC_MSG_ERROR([Can't support offloading without support for plugins]) fi diff --git a/libgomp/plugin/plugin-host.c b/libgomp/plugin/plugin-host.c deleted file mode 100644 index da3c5f4..0000000 --- a/libgomp/plugin/plugin-host.c +++ /dev/null @@ -1,259 +0,0 @@ -/* OpenACC Runtime Library: acc_device_host, acc_device_host_nonshm. - - Copyright (C) 2013-2015 Free Software Foundation, Inc. - - Contributed by Mentor Embedded. - - This file is part of the GNU Offloading and Multi Processing Library - (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - <http://www.gnu.org/licenses/>. */ - -/* Simple implementation of support routines for a shared-memory - acc_device_host, and a non-shared memory acc_device_host_nonshm, with the - latter built as a plugin. */ - -#include "openacc.h" -#include "config.h" -#ifdef HOST_NONSHM_PLUGIN -#include "libgomp-plugin.h" -#include "oacc-plugin.h" -#else -#include "libgomp.h" -#include "oacc-int.h" -#endif - -#include <stdint.h> -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdbool.h> - -#ifdef HOST_NONSHM_PLUGIN -#define STATIC -#define GOMP(X) GOMP_PLUGIN_##X -#define SELF "host_nonshm plugin: " -#else -#define STATIC static -#define GOMP(X) gomp_##X -#define SELF "host: " -#endif - -#ifdef HOST_NONSHM_PLUGIN -#include "plugin-host.h" -#endif - -STATIC const char * -GOMP_OFFLOAD_get_name (void) -{ -#ifdef HOST_NONSHM_PLUGIN - return "host_nonshm"; -#else - return "host"; -#endif -} - -STATIC unsigned int -GOMP_OFFLOAD_get_caps (void) -{ - unsigned int caps = (GOMP_OFFLOAD_CAP_OPENACC_200 - | GOMP_OFFLOAD_CAP_NATIVE_EXEC); - -#ifndef HOST_NONSHM_PLUGIN - caps |= GOMP_OFFLOAD_CAP_SHARED_MEM; -#endif - - return caps; -} - -STATIC int -GOMP_OFFLOAD_get_type (void) -{ -#ifdef HOST_NONSHM_PLUGIN - return OFFLOAD_TARGET_TYPE_HOST_NONSHM; -#else - return OFFLOAD_TARGET_TYPE_HOST; -#endif -} - -STATIC int -GOMP_OFFLOAD_get_num_devices (void) -{ - return 1; -} - -STATIC void -GOMP_OFFLOAD_init_device (int n __attribute__ ((unused))) -{ -} - -STATIC void -GOMP_OFFLOAD_fini_device (int n __attribute__ ((unused))) -{ -} - -STATIC int -GOMP_OFFLOAD_load_image (int n __attribute__ ((unused)), - const void *t __attribute__ ((unused)), - struct addr_pair **r __attribute__ ((unused))) -{ - return 0; -} - -STATIC void -GOMP_OFFLOAD_unload_image (int n __attribute__ ((unused)), - const void *t __attribute__ ((unused))) -{ -} - -STATIC void * -GOMP_OFFLOAD_alloc (int n __attribute__ ((unused)), size_t s) -{ - return GOMP (malloc) (s); -} - -STATIC void -GOMP_OFFLOAD_free (int n __attribute__ ((unused)), void *p) -{ - free (p); -} - -STATIC void * -GOMP_OFFLOAD_host2dev (int n __attribute__ ((unused)), void *d, const void *h, - size_t s) -{ -#ifdef HOST_NONSHM_PLUGIN - memcpy (d, h, s); -#endif - - return 0; -} - -STATIC void * -GOMP_OFFLOAD_dev2host (int n __attribute__ ((unused)), void *h, const void *d, - size_t s) -{ -#ifdef HOST_NONSHM_PLUGIN - memcpy (h, d, s); -#endif - - return 0; -} - -STATIC void -GOMP_OFFLOAD_run (int n __attribute__ ((unused)), void *fn_ptr, void *vars) -{ - void (*fn)(void *) = (void (*)(void *)) fn_ptr; - - fn (vars); -} - -STATIC void -GOMP_OFFLOAD_openacc_parallel (void (*fn) (void *), - size_t mapnum __attribute__ ((unused)), - void **hostaddrs __attribute__ ((unused)), - void **devaddrs __attribute__ ((unused)), - size_t *sizes __attribute__ ((unused)), - unsigned short *kinds __attribute__ ((unused)), - int num_gangs __attribute__ ((unused)), - int num_workers __attribute__ ((unused)), - int vector_length __attribute__ ((unused)), - int async __attribute__ ((unused)), - void *targ_mem_desc __attribute__ ((unused))) -{ -#ifdef HOST_NONSHM_PLUGIN - struct nonshm_thread *thd = GOMP_PLUGIN_acc_thread (); - thd->nonshm_exec = true; - fn (devaddrs); - thd->nonshm_exec = false; -#else - fn (hostaddrs); -#endif -} - -STATIC void -GOMP_OFFLOAD_openacc_register_async_cleanup (void *targ_mem_desc) -{ -#ifdef HOST_NONSHM_PLUGIN - /* "Asynchronous" launches are executed synchronously on the (non-SHM) host, - so there's no point in delaying host-side cleanup -- just do it now. */ - GOMP_PLUGIN_async_unmap_vars (targ_mem_desc); -#endif -} - -STATIC void -GOMP_OFFLOAD_openacc_async_set_async (int async __attribute__ ((unused))) -{ -} - -STATIC int -GOMP_OFFLOAD_openacc_async_test (int async __attribute__ ((unused))) -{ - return 1; -} - -STATIC int -GOMP_OFFLOAD_openacc_async_test_all (void) -{ - return 1; -} - -STATIC void -GOMP_OFFLOAD_openacc_async_wait (int async __attribute__ ((unused))) -{ -} - -STATIC void -GOMP_OFFLOAD_openacc_async_wait_all (void) -{ -} - -STATIC void -GOMP_OFFLOAD_openacc_async_wait_async (int async1 __attribute__ ((unused)), - int async2 __attribute__ ((unused))) -{ -} - -STATIC void -GOMP_OFFLOAD_openacc_async_wait_all_async (int async __attribute__ ((unused))) -{ -} - -STATIC void * -GOMP_OFFLOAD_openacc_create_thread_data (int ord - __attribute__ ((unused))) -{ -#ifdef HOST_NONSHM_PLUGIN - struct nonshm_thread *thd - = GOMP_PLUGIN_malloc (sizeof (struct nonshm_thread)); - thd->nonshm_exec = false; - return thd; -#else - return NULL; -#endif -} - -STATIC void -GOMP_OFFLOAD_openacc_destroy_thread_data (void *tls_data) -{ -#ifdef HOST_NONSHM_PLUGIN - free (tls_data); -#endif -} diff --git a/libgomp/plugin/plugin-host.h b/libgomp/plugin/plugin-host.h deleted file mode 100644 index 96955d1..0000000 --- a/libgomp/plugin/plugin-host.h +++ /dev/null @@ -1,37 +0,0 @@ -/* OpenACC Runtime Library: acc_device_host, acc_device_host_nonshm. - - Copyright (C) 2015 Free Software Foundation, Inc. - - Contributed by Mentor Embedded. - - This file is part of the GNU Offloading and Multi Processing Library - (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef PLUGIN_HOST_H -#define PLUGIN_HOST_H - -struct nonshm_thread -{ - bool nonshm_exec; -}; - -#endif |