summaryrefslogtreecommitdiff
path: root/gcc/tree-streamer-out.c
diff options
context:
space:
mode:
authorjbeulich <jbeulich@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-30 14:56:01 +0000
committerjbeulich <jbeulich@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-30 14:56:01 +0000
commit65d1b157e98fd9f131bb9021f5d1d29f335ffaa0 (patch)
tree088e41e292b4cc3059b11b7ac23f10733b2a3912 /gcc/tree-streamer-out.c
parentb0f8644ae1e21356df6911537e5f0f0a376d963b (diff)
downloadgcc-65d1b157e98fd9f131bb9021f5d1d29f335ffaa0.tar.gz
Split out LTO's writing of top level asm nodes in preparation of extending
what needs to be written out when top level asm-s get enhanced to accept a limited set of input operands. gcc/ 2011-09-30 Jan Beulich <jbeulich@suse.com> * lto-cgraph.c (output_cgraph): Remove processing of 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead. (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call lto_input_toplevel_asms() instead. * lto-section-in.c (lto_section_name): Add "asm" entry. * lto-streamer-in.c (lto_input_toplevel_asms): New. * lto-streamer-out.c (lto_output_toplevel_asms): New. * lto-streamer.h (LTO_minor_version): Bump. (enum lto_section_type): Add LTO_section_asm. (struct lto_asm_header): New. (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare. * tree-streamer.h (streamer_write_string_cst): Declare. * tree-streamer-out.c (write_string_cst): Rename to streamer_write_string_cst and make global. Handle incoming string being NULL. (streamer_write_tree_header): Adjust call to renamed function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179386 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-streamer-out.c')
-rw-r--r--gcc/tree-streamer-out.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index 093b4b3e6f3..58be0a385a0 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -31,14 +31,15 @@ along with GCC; see the file COPYING3. If not see
/* Output the STRING constant to the string
table in OB. Then put the index onto the INDEX_STREAM. */
-static void
-write_string_cst (struct output_block *ob,
- struct lto_output_stream *index_stream,
- tree string)
+void
+streamer_write_string_cst (struct output_block *ob,
+ struct lto_output_stream *index_stream,
+ tree string)
{
streamer_write_string_with_length (ob, index_stream,
- TREE_STRING_POINTER (string),
- TREE_STRING_LENGTH (string),
+ string ? TREE_STRING_POINTER (string)
+ : NULL,
+ string ? TREE_STRING_LENGTH (string) : 0,
true);
}
@@ -866,7 +867,7 @@ streamer_write_tree_header (struct output_block *ob, tree expr)
/* The text in strings and identifiers are completely emitted in
the header. */
if (CODE_CONTAINS_STRUCT (code, TS_STRING))
- write_string_cst (ob, ob->main_stream, expr);
+ streamer_write_string_cst (ob, ob->main_stream, expr);
else if (CODE_CONTAINS_STRUCT (code, TS_IDENTIFIER))
write_identifier (ob, ob->main_stream, expr);
else if (CODE_CONTAINS_STRUCT (code, TS_VEC))