r216404 - in /branches/gomp-4_0-branch: ChangeL...
jules@gcc.gnu.org
jules@gcc.gnu.org
Fri Oct 17 15:10:00 GMT 2014
Author: jules
Date: Fri Oct 17 15:10:11 2014
New Revision: 216404
URL: https://gcc.gnu.org/viewcvs?rev=216404&root=gcc&view=rev
Log:
include/
* gomp-constants.h: New file.
libgomp/
* Makefile.am (AM_CPPFLAGS): Search in ../include also.
(libgomp_plugin_nvptx_version_info, libgomp_plugin_nvptx_la_SOURCES)
(libgomp_plugin_nvptx_la_CPPFLAGS, libgomp_plugin_nvptx_la_LDFLAGS)
(libgomp_plugin_nvptx_la_LIBADD)
(libgomp_plugin_nvptx_la_LIBTOOLFLAGS): Set variables if
PLUGIN_NVPTX is defined.
(toolexeclib_LTLIBRARIES): Add nonshm-host
and (conditionally) nvidia plugins.
(libgomp_plugin_nonshm_host_version_info)
(libgomp_plugin_nonshm_host_la_SOURCES)
(libgomp_plugin_nonshm_host_la_CPPFLAGS)
(libgomp_plugin_nonshm_host_la_LDFLAGS)
(libgomp_plugin_nonshm_host_la_LIBTOOLFLAGS): Set variables.
(libgomp_la_SOURCES): Add oacc-parallel.c, splay-tree.c,
oacc-host.c, oacc-init.c, oacc-mem.c, oacc-async.c, oacc-plugin.c,
oacc-cuda.c, libgomp-plugin.c.
(nodist_libsubinclude_HEADERS): Add openacc.h,
../include/gomp-constants.h.
* Makefile.in: Regenerate.
* config.h.in: Regenerate.
* configure.ac: Add TODOs for OpenACC in various places.
(CUDA_DRIVER_CPPFLAGS, CUDA_DRIVER_LDFLAGS): Initialize.
(--with-cuda-driver, --with-cuda-driver-include)
(--with-cuda-driver-lib, --enable-offload-targets): Implement new
options.
(PLUGIN_NVPTX, PLUGIN_NVPTX_CPPFLAGS, PLUGIN_NVPTX_LDFLAGS)
(PLUGIN_NVPTX_LIBS): Initialize variables.
* configure: Regenerate.
* env.c (target.h): Include.
(goacc_device_num, goacc_device_type): New globals.
(goacc_parse_device_num, goacc_parse_device_type): New functions.
(initialize_env): Parse GCC_ACC_NOTIFY, ACC_DEVICE_TYPE,
ACC_DEVICE_NUM environment variables.
* error.c (gomp_verror, gomp_vfatal, gomp_vnotify, gomp_notify):
New functions.
(gomp_fatal): Make global.
* libgomp.h (stdarg.h): Include.
(struct gomp_memory_mapping): Forward declaration.
(struct gomp_task_icv): Add acc_notify_var member.
(goacc_device_num, goacc_device_type): Add extern declarations.
(gomp_vnotify, gomp_notify, gomp_verror, gomp_vfatal): Add
prototypes.
(gomp_init_targets_once): Add prototype.
* libgomp.map (OACC_2.0): New symbol version. Add public acc_*
interface functions.
(PLUGIN_1.0): New symbol version. Add gomp plugin interface
functions.
* libgomp_g.h (GOACC_kernels, GOACC_parallel): Update prototypes.
(GOACC_wait): Add prototype.
* target.c (limits.h, stdbool.h, stdlib.h): Don't include.
(oacc-plugin.h, gomp-constants.h, stdio.h, assert.h): Include.
(splay_tree_node, splay_tree, splay_tree_key, target_mem_desc)
(splay_tree_key_s, enum target_type, gomp_device_descr): Don't
declare here.
(splay-tree.h): Include.
(target.h): Include.
(splay_compare): Change linkage to hidden not static.
(gomp_init_targets_once): New function.
(gomp_get_num_devices): Use above.
(dump_mappings): New function (for debugging).
(get_kind): New function.
(gomp_map_vars): Add gomp_memory_mapping (mm), is_openacc
parameters. Change KINDS to void *. Use lock from memory map
not device. Use macros from gomp-constants.h instead of
hard-coded values. Support OpenACC-specific mappings.
(gomp_copy_from_async): New function.
(gomp_unmap_vars): Add DO_COPYFROM argument. Only copy memory
back from device if it is true. Use lock from memory map not
device.
(gomp_update): Add mm, is_openacc args. Use lock from
memory map not device. Use macros from gomp-constants.h not
hard-coded values.
(gomp_register_image_for_device): Add forward
declaration.
(GOMP_offload_register): Change TARGET_DATA type to
void **. Check realloc result.
(gomp_init_device): Change linkage to hidden not static. Tweak mem
map location.
(gomp_fini_device): New function.
(GOMP_target): Adjust lazy initialization, check target
capabilities for OpenMP 4.0 support. Add locking around splay tree
lookup. Add new arg to gomp_unmap_vars call.
(GOMP_target_data): Tweak lazy initialization. Add new args to
gomp_map_vars, gomp_unmap_vars calls.
(GOMP_target_update): Tweak lazy initialization. Add new args to
gomp_update call.
(gomp_load_plugin_for_device): Initialize device_fini and
OpenACC-specific plugin hooks.
(gomp_register_images_for_device): Rename to...
(gomp_register_image_for_device): This, and register a single
device only, and only if it has not already had images registered.
(gomp_find_available_plugins): Rearrange to fix plugin loading and
initialization for OpenACC. Prefer a device with
TARGET_CAP_OPENMP_400 for OpenMP.
* target.h: New file.
* splay-tree.h: Move bulk of implementation to...
* splay-tree.c: New file.
* libgomp-plugin.c: New file.
* libgomp-plugin.h: New file.
* oacc-async.c: New file.
* oacc-cuda.c: New file.
* oacc-host.c: New file.
* oacc-init.c: New file.
* oacc-mem.c: New file.
* oacc-parallel.c: New file.
* oacc-plugin.c: New file.
* plugin-nvptx.c: New file.
* oacc-int.h: New file.
* openacc.f90: New file.
* openacc.h: New file.
* openacc_lib.h: New file.
Added:
branches/gomp-4_0-branch/include/gomp-constants.h
branches/gomp-4_0-branch/libgomp/libgomp-plugin.c
branches/gomp-4_0-branch/libgomp/libgomp-plugin.h
branches/gomp-4_0-branch/libgomp/oacc-async.c
branches/gomp-4_0-branch/libgomp/oacc-cuda.c
branches/gomp-4_0-branch/libgomp/oacc-host.c
branches/gomp-4_0-branch/libgomp/oacc-init.c
branches/gomp-4_0-branch/libgomp/oacc-int.h
branches/gomp-4_0-branch/libgomp/oacc-mem.c
branches/gomp-4_0-branch/libgomp/oacc-plugin.c
branches/gomp-4_0-branch/libgomp/oacc-plugin.h
branches/gomp-4_0-branch/libgomp/plugin-nvptx.c
branches/gomp-4_0-branch/libgomp/splay-tree.c
branches/gomp-4_0-branch/libgomp/target.h
Removed:
branches/gomp-4_0-branch/libgomp/plugin-host.c
Modified:
branches/gomp-4_0-branch/ChangeLog.gomp
branches/gomp-4_0-branch/libgomp/ChangeLog.gomp
branches/gomp-4_0-branch/libgomp/Makefile.am
branches/gomp-4_0-branch/libgomp/Makefile.in
branches/gomp-4_0-branch/libgomp/config.h.in
branches/gomp-4_0-branch/libgomp/configure
branches/gomp-4_0-branch/libgomp/configure.ac
branches/gomp-4_0-branch/libgomp/env.c
branches/gomp-4_0-branch/libgomp/error.c
branches/gomp-4_0-branch/libgomp/fortran.c
branches/gomp-4_0-branch/libgomp/libgomp.h
branches/gomp-4_0-branch/libgomp/libgomp.map
branches/gomp-4_0-branch/libgomp/libgomp_g.h
branches/gomp-4_0-branch/libgomp/oacc-parallel.c
branches/gomp-4_0-branch/libgomp/openacc.f90
branches/gomp-4_0-branch/libgomp/openacc.h
branches/gomp-4_0-branch/libgomp/openacc_lib.h
branches/gomp-4_0-branch/libgomp/splay-tree.h
branches/gomp-4_0-branch/libgomp/target.c
More information about the Gcc-cvs
mailing list