aboutsummaryrefslogtreecommitdiff
path: root/gcc/varpool.c
diff options
context:
space:
mode:
authorIlya Verbin <ilya.verbin@intel.com>2014-11-13 13:44:04 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2014-11-13 13:44:04 +0000
commitec6fe917cd323dfe1f84aebe9f3c2eda2b5cbdd1 (patch)
treee5c2e1b47f7ea61d81e7314f0dab30406c0efc09 /gcc/varpool.c
parent3f341ee716b3e32238c5b57e3282a125e273d6f7 (diff)
downloadgcc-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.c3
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 ();