aboutsummaryrefslogtreecommitdiff
path: root/libgomp/plugin
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2015-08-10 18:48:26 +0200
committerThomas Schwinge <tschwinge@gcc.gnu.org>2015-08-10 18:48:26 +0200
commitb97e78b712b21e558a112b7bc683bf05ca7cdcc9 (patch)
tree5b850fb18324259a3fae0131aac6dfa6b6f028fc /libgomp/plugin
parent44a7d18d95a01b37da666a38188201805c6b578d (diff)
downloadgcc-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.am9
-rw-r--r--libgomp/plugin/configfrag.ac1
-rw-r--r--libgomp/plugin/plugin-host.c259
-rw-r--r--libgomp/plugin/plugin-host.h37
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