diff options
author | Ilya Verbin <ilya.verbin@intel.com> | 2014-11-13 13:44:04 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2014-11-13 13:44:04 +0000 |
commit | ec6fe917cd323dfe1f84aebe9f3c2eda2b5cbdd1 (patch) | |
tree | e5c2e1b47f7ea61d81e7314f0dab30406c0efc09 /gcc/varpool.c | |
parent | 3f341ee716b3e32238c5b57e3282a125e273d6f7 (diff) | |
download | gcc-ec6fe917cd323dfe1f84aebe9f3c2eda2b5cbdd1.zip gcc-ec6fe917cd323dfe1f84aebe9f3c2eda2b5cbdd1.tar.gz gcc-ec6fe917cd323dfe1f84aebe9f3c2eda2b5cbdd1.tar.bz2 |
[PATCH 3/7] OpenMP 4.0 offloading infrastructure: Offload tables.
gcc/
* Makefile.in (GTFILES): Add omp-low.h to list of GC files.
* cgraphunit.c: Include omp-low.h.
* 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.
* varpool.c: Include omp-low.h.
(varpool_node::get_create): Add decl into offload_vars vector.
gcc/lto/
* lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables.
Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r217489
Diffstat (limited to 'gcc/varpool.c')
-rw-r--r-- | gcc/varpool.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/varpool.c b/gcc/varpool.c index ee889f2..80dd496 100644 --- a/gcc/varpool.c +++ b/gcc/varpool.c @@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "lto-streamer.h" #include "context.h" +#include "omp-low.h" const char * const tls_model_names[]={"none", "tls-emulated", "tls-real", "tls-global-dynamic", "tls-local-dynamic", @@ -171,6 +172,8 @@ varpool_node::get_create (tree decl) { node->offloadable = 1; g->have_offload = true; + if (!in_lto_p) + vec_safe_push (offload_vars, decl); } node->register_symbol (); |