Go to file
Ilya Verbin a51df54e48 libgomp: rework initialization of offloading
gcc/
	* config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
	GOMP_offload_unregister from the destructor.
libgomp/
	* libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
	* libgomp.h (struct gomp_memory_mapping): Remove.
	(struct target_mem_desc): Change type of mem_map from
	gomp_memory_mapping * to splay_tree_s *.
	(struct gomp_device_descr): Remove register_image_func, get_table_func.
	Add load_image_func, unload_image_func.
	Change type of mem_map from gomp_memory_mapping to splay_tree_s.
	Remove offload_regions_registered.
	(gomp_init_tables): Remove.
	(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
	to splay_tree_s *.
	* libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
	* oacc-host.c (host_dispatch): Do not initialize register_image_func,
	get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
	offload_regions_registered.
	Initialize load_image_func, unload_image_func, mem_map.root.
	(goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
	* oacc-init.c (lazy_open): Don't call gomp_init_tables.
	(acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
	* oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
	gomp_memory_mapping *.  Use dev's lock and splay_tree.
	(lookup_dev): Use dev's lock.
	(acc_deviceptr): Pass dev to lookup_host instead of mem_map.
	(acc_is_present): Likewise.
	(acc_map_data): Likewise.
	(acc_unmap_data): Likewise.  Use dev's lock.
	(present_create_copy): Likewise.
	(delete_copyout): Pass dev to lookup_host instead of mem_map.
	(update_dev_host): Likewise.
	(gomp_acc_remove_pointer): Likewise.  Use dev's lock.
	* oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
	* plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
	(GOMP_OFFLOAD_get_table): Remove
	(GOMP_OFFLOAD_load_image): New function.
	(GOMP_OFFLOAD_unload_image): New function.
	* target.c (register_lock): New mutex for offload image registration.
	(num_devices): Do not guard with PLUGIN_SUPPORT.
	(gomp_realloc_unlock): New static function.
	(gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
	before gomp_fatal.
	(gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
	Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
	(gomp_copy_from_async): Use dev's lock and splay_tree instead of
	mem_map's.
	(gomp_unmap_vars): Likewise.
	(gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
	splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
	(gomp_offload_image_to_device): New static function.
	(GOMP_offload_register): Add mutex lock.
	Call gomp_offload_image_to_device for all initialized devices.
	Replace gomp_realloc with gomp_realloc_unlock.
	(GOMP_offload_unregister): New function.
	(gomp_init_tables): Replace with gomp_init_device.  Replace a call to
	get_table_func from the plugin with calls to init_device_func and
	gomp_offload_image_to_device.
	(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
	to splay_tree_s *.
	(GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
	splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
	(GOMP_target_data): Do not call gomp_init_tables.
	(GOMP_target_update): Likewise.  Remove argument from gomp_update.
	(gomp_load_plugin_for_device): Replace register_image and get_table
	with load_image and unload_image in DLSYM ().
	(gomp_register_images_for_device): Remove function.
	(gomp_target_init): Do not initialize current_device.mem_map.*,
	current_device.offload_regions_registered.
	Remove call to gomp_register_images_for_device.
	Do not free offload_images and num_offload_images.
liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp: Include map.
	(AddrVect, DevAddrVect, ImgDevAddrMap): New typedefs.
	(num_devices, num_images, address_table): New static vars.
	(num_libraries, lib_descrs): Remove static vars.
	(set_mic_lib_path): Rename to ...
	(init): ... this.  Allocate address_table and get num_devices.
	(GOMP_OFFLOAD_get_num_devices): return num_devices.
	(load_lib_and_get_table): Remove static function.
	(offload_image): New static function.
	(GOMP_OFFLOAD_get_table): Remove function.
	(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New functions.

From-SVN: r221878
2015-04-06 12:40:28 +00:00
INSTALL README: Do not mention CVS. 2014-10-12 15:05:28 +00:00
boehm-gc Include target-utils.exp in boehm-gc testing 2014-12-18 09:42:22 +00:00
config Install back PR target/47230 fix (Revert the revert). 2015-03-27 18:08:44 +01:00
contrib dg-extract-results.sh: Check that the necessary python modules exist. 2015-03-06 18:35:15 +00:00
fixincludes re PR libstdc++/65500 (FAIL: 17_intro/headers/c++2014/all_attributes.cc (test for excess errors)) 2015-03-28 17:27:22 +00:00
gcc libgomp: rework initialization of offloading 2015-04-06 12:40:28 +00:00
gnattools Makefile.in (TOOLS_FLAGS_TO_PASS_CROSS): Robustify. 2014-02-23 16:30:11 +00:00
gotools re PR go/65462 (Use of 'go get' with gccgo is not finding dependencies correctly) 2015-03-24 19:50:31 +00:00
include partition.h (struct partition_elem): Re-order elements to avoid padding. 2015-03-19 11:44:08 +00:00
intl
libada Update copyright years. 2015-01-05 13:33:28 +01:00
libatomic Avoid misaligned atomic operations 2015-01-21 09:17:03 -08:00
libbacktrace Move wrong ChangeLog entry from the toplevel ChangeLog to 2015-01-26 14:51:12 +00:00
libcc1 Always pass explicit location to fatal_error. 2015-01-30 16:15:00 +00:00
libcilkrts configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC. 2015-01-26 22:54:31 +00:00
libcpp re PR preprocessor/61977 (powerpc preprocessor breaks on lines that end with "vector") 2015-04-02 13:57:02 +02:00
libdecnumber Update copyright years. 2015-01-05 13:33:28 +01:00
libffi re PR libffi/65567 (ERROR: tcl error sourcing /test/gnu/gcc/gcc/libffi/testsuite/libffi.complex/complex.exp) 2015-03-29 20:46:17 +00:00
libgcc config.host (nios2-*-linux*): Remove 'extra_parts' setting. 2015-03-25 08:32:17 +00:00
libgfortran re PR fortran/65596 (NAMELIST bug with f2003: reads too far) 2015-03-28 13:27:58 +00:00
libgo Remove some files that were accidentally committed in 2014. 2015-03-31 19:47:23 +00:00
libgomp libgomp: rework initialization of offloading 2015-04-06 12:40:28 +00:00
libiberty strerror.c: Do not declare sys_nerr or sys_errlist if already macros 2015-01-19 15:28:56 +00:00
libitm Make test2/test1 static in libitm.c/stackundo.c 2015-01-15 10:03:20 -08:00
libjava cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16. 2015-01-29 00:34:03 +00:00
libmpx re PR driver/65444 (-z bndplt isn't passed to linker for -mmpx when building dynamic objects) 2015-04-02 08:15:49 +00:00
libobjc Fix failures on AIX (PR libobjc/63765) 2015-02-05 09:41:44 +00:00
liboffloadmic libgomp: rework initialization of offloading 2015-04-06 12:40:28 +00:00
libquadmath configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC. 2015-01-26 14:57:41 +00:00
libsanitizer re PR sanitizer/59009 (libsanitizer merge from upstream r191666 breaks bootstrap on powerpc64-linux and aarch64-linux) 2015-03-23 14:43:22 +01:00
libssp ssp.c (__guard_setup): For Windows... 2015-02-09 18:44:08 -07:00
libstdc++-v3 re PR libstdc++/65630 (operator+ for new std::string not exported) 2015-03-30 18:52:37 +01:00
libvtv libvtv: autoreconf. 2015-02-09 12:41:22 +01:00
lto-plugin Revert the PR lto/64837 fix 2015-02-06 05:55:42 -08:00
maintainer-scripts Complete previous change. 2015-02-25 16:47:05 +01:00
zlib Always use PIC option with -shared in libtool 2014-11-21 08:49:17 -08:00
.dir-locals.el * .dir-locals.el: Add. 2013-10-16 18:25:31 +00:00
.gitignore Local Vim config with GNU formatting. 2014-12-09 13:45:47 +00:00
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog [Patch] Add myself as AArch64 Port Reviewer 2015-04-02 10:49:16 +00:00
ChangeLog.jit Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
ChangeLog.tree-ssa
MAINTAINERS [Patch] Add myself as AArch64 Port Reviewer 2015-04-02 10:49:16 +00:00
Makefile.def Makefile.def: Add libmpx. 2015-03-10 09:37:41 +00:00
Makefile.in Fix vimrc file link creation. 2015-03-25 12:05:22 +00:00
Makefile.tpl Fix vimrc file link creation. 2015-03-25 12:05:22 +00:00
README
compile Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
config-ml.in * config-ml.in: Robustify ac_configure_args parsing. 2014-06-13 16:32:29 +02:00
config.guess config.sub: Update from upstream, to 2015-01-01 version. 2015-01-02 09:30:21 +00:00
config.rpath
config.sub config.sub: Update from upstream, to 2015-01-01 version. 2015-01-02 09:30:21 +00:00
configure Install back PR target/47230 fix (Revert the revert). 2015-03-27 18:08:44 +01:00
configure.ac Install back PR target/47230 fix (Revert the revert). 2015-03-27 18:08:44 +01:00
depcomp Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
install-sh Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
libtool-ldflags re PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan)) 2014-04-17 14:23:28 +02:00
libtool.m4 Always use PIC option with -shared in libtool 2014-11-21 08:49:17 -08:00
ltgcc.m4
ltmain.sh Ensure libgcc_s unwinder is always used on 64-bit Solaris 10+/x86 (PR target/59788) 2014-02-04 09:31:38 +00:00
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
missing Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
mkdep
mkinstalldirs Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
move-if-change Update move-if-change from gnulib 2014-11-16 16:12:44 +00:00
symlink-tree
ylwrap Update from upstream Automake files. 2014-11-16 14:07:13 +00:00

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.