[PATCH 4/7] OpenMP 4.0 offloading infrastructure: lto-wrapper.
authorkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Nov 2014 13:47:46 +0000 (13:47 +0000)
committerkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Nov 2014 13:47:46 +0000 (13:47 +0000)
commit77415571854950a5746d03cdefd344ff47803551
tree01939e74e91ddfabc8de28a27fd8c4f87e5feb2c
parentdccabdd1369080883dbcd309be7e10ca4825a854
[PATCH 4/7] OpenMP 4.0 offloading infrastructure: lto-wrapper.

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_offloadbeginend):
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217491 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/gcc.c
gcc/lto-wrapper.c
lto-plugin/ChangeLog
lto-plugin/lto-plugin.c