aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2013-11-20 13:50:44 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2013-11-20 13:50:44 +0000
commiteb1d81598d4b4413ec5fe730036c16202afad6b6 (patch)
treeda46e8ec2d13767fa1a1c3da99489ab1f6ebd4e4 /gcc
parenta888f9ad6f86dab748ce790ac2d11b1bf95f36b5 (diff)
downloadgcc-eb1d81598d4b4413ec5fe730036c16202afad6b6.zip
gcc-eb1d81598d4b4413ec5fe730036c16202afad6b6.tar.gz
gcc-eb1d81598d4b4413ec5fe730036c16202afad6b6.tar.bz2
cgraph.h (varpool_node): Add need_bounds_init field.
* cgraph.h (varpool_node): Add need_bounds_init field. * lto-cgraph.c (lto_output_varpool_node): Output need_bounds_init value. (input_varpool_node): Read need_bounds_init value. * varpool.c (dump_varpool_node): Dump need_bounds_init field. From-SVN: r205116
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/cgraph.h4
-rw-r--r--gcc/lto-cgraph.c2
-rw-r--r--gcc/varpool.c2
4 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d824dd8..15476a4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ * cgraph.h (varpool_node): Add need_bounds_init field.
+ * lto-cgraph.c (lto_output_varpool_node): Output
+ need_bounds_init value.
+ (input_varpool_node): Read need_bounds_init value.
+ * varpool.c (dump_varpool_node): Dump need_bounds_init field.
+
2013-11-20 Jan Hubicka <jh@suse.cz>
* opts.c (finish_options): Imply -ffat-lto-objects with -fno-use-linker-plugin.
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index 4acf2d0..15719fb 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -528,6 +528,10 @@ class GTY((tag ("SYMTAB_VARIABLE"))) varpool_node : public symtab_node {
public:
/* Set when variable is scheduled to be assembled. */
unsigned output : 1;
+
+ /* Set when variable has statically initialized pointer
+ or is a static bounds variable and needs initalization. */
+ unsigned need_bounds_init : 1;
};
/* Every top level asm statement is put into a asm_node. */
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index d827599..0f1a1c5 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -580,6 +580,7 @@ lto_output_varpool_node (struct lto_simple_output_block *ob, struct varpool_node
&& boundary_p && !DECL_EXTERNAL (node->decl), 1);
/* in_other_partition. */
}
+ bp_pack_value (&bp, node->need_bounds_init, 1);
streamer_write_bitpack (&bp);
if (node->same_comdat_group && !boundary_p)
{
@@ -1150,6 +1151,7 @@ input_varpool_node (struct lto_file_decl_data *file_data,
node->analyzed = bp_unpack_value (&bp, 1);
node->used_from_other_partition = bp_unpack_value (&bp, 1);
node->in_other_partition = bp_unpack_value (&bp, 1);
+ node->need_bounds_init = bp_unpack_value (&bp, 1);
if (node->in_other_partition)
{
DECL_EXTERNAL (node->decl) = 1;
diff --git a/gcc/varpool.c b/gcc/varpool.c
index 06b93a3..f79cf49 100644
--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -205,6 +205,8 @@ dump_varpool_node (FILE *f, struct varpool_node *node)
fprintf (f, " initialized");
if (node->output)
fprintf (f, " output");
+ if (node->need_bounds_init)
+ fprintf (f, " need-bounds-init");
if (TREE_READONLY (node->decl))
fprintf (f, " read-only");
if (ctor_for_folding (node->decl) != error_mark_node)