aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-in.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-10-04 11:46:56 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-10-04 09:46:56 +0000
commit398f05daa1904a479a58c212012faa10b65e8834 (patch)
tree57ee07886936e8cdf54731ec7b22e1981530e307 /gcc/lto-streamer-in.c
parent36a50ab6e0a6dcf32f1ece84621704cd9b16eabe (diff)
downloadgcc-398f05daa1904a479a58c212012faa10b65e8834.zip
gcc-398f05daa1904a479a58c212012faa10b65e8834.tar.gz
gcc-398f05daa1904a479a58c212012faa10b65e8834.tar.bz2
lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
* lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter. * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order. * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order. * lto-cgraph.c (order_base): New static var. (lto_output_node): Stream in order. (lto_output_varpool_node): Stream out order. (input_node): Stream in order. (input_varpool_node): Stream out order. (input_cgraph_1): Initialize order base; update call of lto_input_toplevel_asms. From-SVN: r179496
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r--gcc/lto-streamer-in.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index ef972ca..d4e80c7 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -1144,7 +1144,7 @@ lto_input_tree (struct lto_input_block *ib, struct data_in *data_in)
/* Input toplevel asms. */
void
-lto_input_toplevel_asms (struct lto_file_decl_data *file_data)
+lto_input_toplevel_asms (struct lto_file_decl_data *file_data, int order_base)
{
size_t len;
const char *data = lto_get_section_data (file_data, LTO_section_asm,
@@ -1173,7 +1173,12 @@ lto_input_toplevel_asms (struct lto_file_decl_data *file_data)
header->lto_header.minor_version);
while ((str = streamer_read_string_cst (data_in, &ib)))
- cgraph_add_asm_node (str);
+ {
+ struct cgraph_asm_node *node = cgraph_add_asm_node (str);
+ node->order = streamer_read_hwi (&ib) + order_base;
+ if (node->order >= cgraph_order)
+ cgraph_order = node->order + 1;
+ }
clear_line_info (data_in);
lto_data_in_delete (data_in);