~vcs-imports/gcc/+git/gcc:kyukhin/gomp4-offload
- Git
- lp:~vcs-imports/gcc/+git/gcc
- kyukhin/gomp4-offload
- Get this branch:
-
git clone
-b kyukhin/gomp4-offload
https://git.launchpad.net/~vcs-imports/gcc/+git/gcc
Branch merges
Related source package recipes
Branch information
- Name:
- kyukhin/gomp4-offload
- Repository:
- lp:~vcs-imports/gcc/+git/gcc
Recent commits
- 60f48f1... by Ilya Verbin <email address hidden>
-
[PATCH 4/4] OpenMP 4.0 offloading to Intel MIC: non-fallback testing
2014-10-30 Andrey Turetskiy <email address hidden>
Ilya Verbin <email address hidden>libgomp/
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac: Set up offload_additional_ options,
offload_additional_ lib_paths and offload_targets.
* testsuite/Makefile. am: Overrule site.exp.
* testsuite/Makefile. in: Regenerate.
* testsuite/lib/libgomp. exp (libgomp_init): Append
offload_additional_ lib_paths to LD_LIBRARY_PATH. Append
offload_additional_ options to ALWAYS_CFLAGS. Append liboffloadmic
build directory to LD_LIBRARY_PATH for intelmic offload targets. - 6cf3816... by Ilya Verbin <email address hidden>
-
[PATCH 3/4] OpenMP 4.0 offloading to Intel MIC: libgomp plugin
2014-10-21 Ilya Verbin <email address hidden>
Andrey Turetskiy <email address hidden>liboffloadmic/
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac: Add subdirectory 'plugin'.
* plugin/Makefile.am: New file.
* plugin/Makefile.in: New file, generated by automake.
* plugin/aclocal.m4: New file, generated by aclocal.
* plugin/configure: New file, generated by autoconf.
* plugin/configure. ac: New file.
* plugin/libgomp- plugin- intelmic. cpp: New file.
* plugin/offload_ target_ main.cpp: New file. - 534b201... by Ilya Verbin <email address hidden>
-
[PATCH 2/4] OpenMP 4.0 offloading to Intel MIC: liboffloadmic
2014-10-21 Ilya Verbin <email address hidden>
* Makefile.def: Add liboffloadmic to target_modules. Make
liboffloadmic depend on libgomp's configure, libstdc++ and libgcc.
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac: Add liboffloadmic to target binaries.
Restrict liboffloadmic for POSIX and i*86, and x86_64 architectures.
Add liboffloadmic to noconfig list when C++ is not supported.
config/
* target-posix: New file.
libcilkrts/
* configure.tgt: Use config/target- posix.
liboffloadmic/
Initial commit. Imported from upstream:
https://www.openmprtl. org/sites/ default/ files/liboffloa d_oss.tgz
* Makefile.am: New file.
* Makefile.in: New file, generated by automake.
* aclocal.m4: New file, generated by aclocal.
* configure: New file, generated by autoconf.
* configure.ac: New file.
* configure.tgt: Ditto.
* doc/doxygen/config: Ditto.
* doc/doxygen/header. tex: Ditto.
* include/coi/common/ COIEngine_ common. h: Ditto.
* include/coi/common/ COIMacros_ common. h: Ditto.
* include/coi/common/ COIPerf_ common. h : Ditto.
* include/coi/common/ COIResult_ common. h : Ditto.
* include/coi/common/ COITypes_ common. h: Ditto.
* include/coi/sink/ COIBuffer_ sink.h: Ditto.
* include/coi/sink/ COIPipeline_ sink.h: Ditto.
* include/coi/sink/ COIProcess_ sink.h: Ditto.
* include/coi/source/ COIBuffer_ source. h: Ditto.
* include/coi/source/ COIEngine_ source. h: Ditto.
* include/coi/source/ COIEvent_ source. h: Ditto.
* include/coi/source/ COIPipeline_ source. h: Ditto.
* include/coi/source/ COIProcess_ source. h: Ditto.
* include/myo/myo.h: Ditto.
* include/myo/myoimpl. h: Ditto.
* include/myo/myotypes. h: Ditto.
* liboffloadmic_host.spec. in: Ditto.
* liboffloadmic_target. spec.in: Ditto.
* runtime/cean_util. cpp: Ditto.
* runtime/cean_util. h: Ditto.
* runtime/coi/coi_ client. cpp: Ditto.
* runtime/coi/coi_ client. h: Ditto.
* runtime/coi/coi_ server. cpp: Ditto.
* runtime/coi/coi_ server. h: Ditto.
* runtime/compiler_ if_host. cpp: Ditto.
* runtime/compiler_ if_host. h: Ditto.
* runtime/compiler_ if_target. cpp: Ditto.
* runtime/compiler_ if_target. h: Ditto.
* runtime/dv_util. cpp: Ditto.
* runtime/dv_util.h: Ditto.
* runtime/emulator/ coi_common. h: Ditto.
* runtime/emulator/ coi_device. cpp: Ditto.
* runtime/emulator/ coi_device. h: Ditto.
* runtime/emulator/ coi_host. cpp: Ditto.
* runtime/emulator/ coi_host. h: Ditto.
* runtime/emulator/ coi_version_ asm.h: Ditto.
* runtime/emulator/ coi_version_ linker_ script. map: Ditto.
* runtime/emulator/ myo_client. cpp: Ditto.
* runtime/emulator/ myo_service. cpp: Ditto.
* runtime/emulator/ myo_service. h: Ditto.
* runtime/emulator/ myo_version_ asm.h: Ditto.
* runtime/emulator/ myo_version_ linker_ script. map: Ditto.
* runtime/liboffload_ error.c: Ditto.
* runtime/liboffload_ error_codes. h: Ditto.
* runtime/liboffload_ msg.c: Ditto.
* runtime/liboffload_ msg.h: Ditto.
* runtime/mic_lib. f90: Ditto.
* runtime/offload.h: Ditto.
* runtime/offload_ common. cpp: Ditto.
* runtime/offload_ common. h: Ditto.
* runtime/offload_ engine. cpp: Ditto.
* runtime/offload_ engine. h: Ditto.
* runtime/offload_ env.cpp: Ditto.
* runtime/offload_ env.h: Ditto.
* runtime/offload_ host.cpp: Ditto.
* runtime/offload_ host.h: Ditto.
* runtime/offload_ myo_host. cpp: Ditto.
* runtime/offload_ myo_host. h: Ditto.
* runtime/offload_ myo_target. cpp: Ditto.
* runtime/offload_ myo_target. h: Ditto.
* runtime/offload_ omp_host. cpp: Ditto.
* runtime/offload_ omp_target. cpp: Ditto.
* runtime/offload_ orsl.cpp: Ditto.
* runtime/offload_ orsl.h: Ditto.
* runtime/offload_ table.cpp: Ditto.
* runtime/offload_ table.h: Ditto.
* runtime/offload_ target. cpp: Ditto.
* runtime/offload_ target. h: Ditto.
* runtime/offload_ target_ main.cpp: Ditto.
* runtime/offload_ timer.h: Ditto.
* runtime/offload_ timer_host. cpp: Ditto.
* runtime/offload_ timer_target. cpp: Ditto.
* runtime/offload_ trace.cpp: Ditto.
* runtime/offload_ trace.h: Ditto.
* runtime/offload_ util.cpp: Ditto.
* runtime/offload_ util.h: Ditto.
* runtime/ofldbegin. cpp: Ditto.
* runtime/ofldend. cpp: Ditto.
* runtime/orsl-lite/ include/ orsl-lite. h: Ditto.
* runtime/orsl-lite/ lib/orsl- lite.c: Ditto.
* runtime/orsl-lite/ version. txt: Ditto.
* runtime/use_mpss2. txt: Ditto. - 59ac128... by Ilya Verbin <email address hidden>
-
[PATCH 1/4] OpenMP 4.0 offloading to Intel MIC: mkoffload
2014-10-22 Ilya Verbin <email address hidden>
Andrey Turetskiy <email address hidden>gcc/
* config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
tmake_file.
(i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
accelerator compiler.
* config/i386/intelmic- mkoffload. c: New file.
* config/i386/t- intelmic: Ditto. - 49ae5b9... by Ilya Verbin <email address hidden>
-
[PATCH 7] OpenMP 4.0 offloading infrastructure: testsuite
2014-10-15 Andrey Turetskiy <email address hidden>
Ilya Verbin <email address hidden>
Kirill Yukhin <email address hidden>
Ilya Tocar <email address hidden>libgomp/
* testsuite/lib/libgomp. exp
(check_effective_ target_ offload_ device) : New.
* testsuite/libgomp. c++/c++ .exp: Include tests from subdirectories.
* testsuite/libgomp. c++/examples- 4/e.51. 5.C: New test.
* testsuite/libgomp. c++/examples- 4/e.53. 2.C: Ditto.
* testsuite/libgomp. c/examples- 4/e.50. 1.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.50. 2.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.50. 3.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.50. 4.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.50. 5.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.51. 1.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.51. 2.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.51. 3.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.51. 4.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.51. 6.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.51. 7.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.52. 1.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.52. 2.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.53. 1.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.53. 3.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.53. 4.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.53. 5.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.54. 2.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.54. 3.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.54. 4.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.54. 5.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.54. 6.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.55. 1.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.55. 2.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.56. 3.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.56. 4.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.57. 1.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.57. 2.c: Ditto.
* testsuite/libgomp. c/examples- 4/e.57. 3.c: Ditto.
* testsuite/libgomp. c/target- 7.c: Fix test.
* testsuite/libgomp. fortran/ examples- 4/e.50. 1.f90: New test.
* testsuite/libgomp. fortran/ examples- 4/e.50. 2.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.50. 3.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.50. 4.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.50. 5.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.51. 1.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.51. 2.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.51. 3.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.51. 4.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.51. 5.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.51. 6.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.51. 7.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.52. 1.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.52. 2.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.53. 1.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.53. 2.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.53. 3.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.53. 4.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.53. 5.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.54. 2.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.54. 3.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.54. 4.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.54. 5.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.54. 6.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.55. 1.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.55. 2.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.56. 3.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.56. 4.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.57. 1.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.57. 2.f90: Ditto.
* testsuite/libgomp. fortran/ examples- 4/e.57. 3.f90: Ditto. - b427800... by Ilya Verbin <email address hidden>
-
[PATCH 6] OpenMP 4.0 offloading infrastructure: option handling
2014-10-17 Bernd Schmidt <email address hidden>
Andrey Turetskiy <email address hidden>
Ilya Verbin <email address hidden>gcc/
* common.opt (foffload, foffload-abi): New options.
* config/i386/i386.c (ix86_offload_options) : New static function.
(TARGET_OFFLOAD_ OPTIONS) : Define.
* coretypes.h (enum offload_abi): New enum.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in (TARGET_OFFLOAD_ OPTIONS) : Document.
* gcc.c (offload_targets): New static variable.
(handle_foffload_ option) : New static function.
(driver_handle_ option) : Handle OPT_foffload_.
(driver::maybe_ putenv_ OFFLOAD_ TARGETS) : Set OFFLOAD_ TARGET_ NAMES
according to offload_targets.
* hooks.c (hook_charptr_void_null) : New hook.
* hooks.h (hook_charptr_void_null) : Declare.
* lto-opts.c: Include lto-section-names.h.
(lto_write_options) : Append options from target offload_options hook and
store them to offload_lto section. Do not store target-specific,
driver and diagnostic options in offload_lto section.
* lto-wrapper.c (merge_and_complain) : Handle OPT_foffload_ and
OPT_foffload_abi_.
(append_compiler_ options, append_ linker_ options)
(append_offload_ options) : New static functions.
(compile_offload_ image): Add new arguments with options.
Call append_compiler_ options and append_ offload_ options.
(compile_images_ for_offload_ targets) : Add new arguments with options.
(find_and_merge_ options) : New static function.
(run_gcc): Outline options handling into the new functions:
find_and_merge_options, append_ compiler_ options, append_ linker_ options.
* opts.c (common_handle_ option) : Don't handle OPT_foffload_.
Forbid OPT_foffload_abi_ for non-offload compiler.
* target.def (offload_options): New target hook. - 89acabb... by Ilya Verbin <email address hidden>
-
[PATCH 5] OpenMP 4.0 offloading infrastructure: libgomp
2014-10-06 Jakub Jelinek <email address hidden>
Ilya Verbin <email address hidden>
Thomas Schwinge <email address hidden>
Andrey Turetskiy <email address hidden>libgomp/
* libgomp.map (GOMP_4.0.1): New symbol version.
Add GOMP_offload_register.
* libgomp_target.h: New file.
* splay-tree.h: New file.
* target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
(gomp_target_ init): New forward declaration.
(gomp_is_initialized) : New static variable.
(splay_tree_node, splay_tree, splay_tree_key): New typedefs.
(struct target_mem_desc, struct splay_tree_key_s, offload_image_descr) :
New structures.
(offload_images, num_offload_images, devices, num_devices): New static
variables.
(splay_compare): New static function.
(struct gomp_device_descr): New structure.
(gomp_get_num_ devices) : Call gomp_target_init.
(resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
(gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
(GOMP_offload_ register) : New function.
(GOMP_target): Arrange for host callback to be performed in a separate
initial thread and contention group, inheriting ICVs from
gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars.
Add device initialization and lookup for target function in splay tree.
(GOMP_target_ data): Add device initialization and call gomp_map_vars.
(GOMP_target_ end_data) : Call gomp_unmap_vars.
(GOMP_target_ update) : Add device initialization and call gomp_update.
(gomp_load_plugin_ for_device, gomp_register_ images_ for_device)
(gomp_target_ init): New static functions. - 545cb15... by Ilya Verbin <email address hidden>
-
[PATCH 4] OpenMP 4.0 offloading infrastructure: lto-wrapper
2014-10-16 Ilya Verbin <email address hidden>
Bernd Schmidt <email address hidden>
Andrey Turetskiy <email address hidden>
Michael Zolotukhin <email address hidden>gcc/
* gcc.c (spec_host_machine, accel_dir_suffix): New variables.
(process_command): Tweak path construction for the possibility
of being configured as an offload compiler.
(driver::maybe_ putenv_ OFFLOAD_ TARGETS) : New function.
(driver::main): Call maybe_putenv_OFFLOAD_ TARGETS.
(driver::set_up_ specs): Tweak path construction for the possibility of
being configured as an offload compiler.
* lto-wrapper.c (OFFLOAD_TARGET_ NAMES_ENV) : Define.
(offload_names, offloadbegin, offloadend): New static variables.
(free_array_of_ ptrs, parse_env_var, access_check, compile_ offload_ image)
(compile_images_ for_offload_ targets, copy_file, find_offloadbeg inend):
New static functions.
(run_gcc): Determine whether offload sections are present. If so, run
compile_images_ for_offload_ targets and return the names of new generated
objects to linker. If there are offload sections, but no LTO sections,
then return the copies of input objects without link-time recompilation.
lto-plugin/
* lto-plugin.c (OFFLOAD_SECTION, OFFLOAD_SECTION_ LEN): Define.
(struct plugin_objfile): Add new field "offload".
(process_offload_ section) : New static function.
(claim_file_handler) : Claim file if it contains offload sections. - 899a408... by Ilya Verbin <email address hidden>
-
[PATCH 3] OpenMP 4.0 offloading infrastructure: Offload tables
2014-09-30 Ilya Verbin <email address hidden>
Bernd Schmidt <email address hidden>
Andrey Turetskiy <email address hidden>
Michael Zolotukhin <email address hidden>gcc/
* Makefile.in (GTFILES): Add omp-low.h to list of GC files.
* cgraphunit.c: Include omp-low.h.
(initialize_offload) : Collect global variables with "omp declare target"
attribute into offload_vars vector.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in (TARGET_RECORD_ OFFLOAD_ SYMBOL) : Document.
* gengtype.c (open_base_files): Add omp-low.h to ifiles.
* lto-cgraph.c (output_offload_ tables) : New function.
(input_offload_ tables) : Likewise.
* lto-section-in.c (lto_section_name): Add "offload_table".
* lto-section-names.h (OFFLOAD_VAR_TABLE_ SECTION_ NAME): Define.
(OFFLOAD_FUNC_TABLE_ SECTION_ NAME): Likewise.
* lto-streamer-out.c (lto_output): Call output_offload_ tables.
* lto-streamer.h (lto_section_type): Add LTO_section_offload_ table.
(output_offload_ tables, input_offload_ tables) : Declare.
* omp-low.c: Include common/common- target. h and lto-section- names.h.
(offload_funcs, offload_vars): New global <tree, va_gc> vectors.
(expand_omp_target) : Add child_fn into offload_funcs vector.
(add_decls_addresses_ to_decl_ constructor) : New function.
(omp_finish_file): Likewise.
* omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
* target.def (record_offload_ symbol) : New DEFHOOK.
* toplev.c: Include omp-low.h.
(compile_file): Call omp_finish_file.
gcc/lto/
* lto/lto.c (read_cgraph_and_symbols) : Call input_offload_ tables. - 3918aaf... by Ilya Verbin <email address hidden>
-
[PATCH 2] OpenMP 4.0 offloading infrastructure: LTO streaming
2014-10-01 Ilya Verbin <email address hidden>
Ilya Tocar <email address hidden>
Andrey Turetskiy <email address hidden>
Bernd Schmidt <email address hidden>gcc/
* cgraph.h (symtab_node): Add need_lto_streaming flag.
* cgraphunit.c: Include lto-section-names.h.
(initialize_offload) : New function.
(ipa_passes): Initialize offload and call ipa_write_summaries if there
is something to write to OFFLOAD_SECTION_ NAME_PREFIX sections.
(symbol_table:: compile) : Call lto_streamer_ hooks_init under flag_openmp.
* ipa-inline-analysis. c (inline_ generate_ summary) : Do not exit under
flag_openmp.
(inline_free_summary) : Always remove hooks.
* lto-cgraph.c (referenced_from_other_ partition_ p): Ignore references
from non-offloadable nodes while streaming a node into offload section.
(reachable_from_other_ partition_ p): Likewise.
(select_what_to_ stream) : New function.
(compute_ltrans_ boundary) : Do not call
lto_set_symtab_ encoder_ in_partition if the node should not be streamed.
* lto-section-names.h (OFFLOAD_SECTION_ NAME_PREFIX) : Define.
(section_name_prefix) : Declare.
* lto-streamer.c (section_name_prefix) : New variable.
(lto_get_section_ name): Use section_name_prefix instead of
LTO_SECTION_NAME_PREFIX.
* lto-streamer.h (select_what_to_ stream) : Declare.
* omp-low.c (is_targetreg_ctx): New function.
(create_omp_child_ function, check_omp_ nesting_ restrictions) : Use it.
(expand_omp_target) : Set mark_force_output for the offloaded functions.
(lower_omp_critical) : Add target attribute for omp critical symbol.
* passes.c (ipa_write_summaries) : New argument offload_lto_mode. Call
select_what_to_ stream. Do not call lto_set_ symtab_ encoder_ in_partition
if the node should not be streamed out.
* tree-pass.h (ipa_write_summaries) : New bool argument.
gcc/lto/
* lto-object.c (lto_obj_add_section) : Use section_name_prefix instead of
LTO_SECTION_NAME_PREFIX.
* lto-partition.c (lto_promote_cross_file_ statics) : Call
select_what_to_ stream.
* lto.c (lto_section_with_id) : Use section_name_prefix instead of
LTO_SECTION_NAME_PREFIX.
(read_cgraph_ and_symbols) : Read OFFLOAD_ SECTION_ NAME_PREFIX sections, if
being built as an offload compiler.