diff options
author | Martin Liska <mliska@suse.cz> | 2019-10-30 11:38:52 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-10-30 10:38:52 +0000 |
commit | 3c56d8d8de26c7d7ac46733b7b3c01ae34e144f1 (patch) | |
tree | fa3f3e368cfb454737f1269277b2ea7d8b2c89e1 /gcc/lto | |
parent | 01509e2f045ab897000de7a2b242a059a99a89a3 (diff) | |
download | gcc-3c56d8d8de26c7d7ac46733b7b3c01ae34e144f1.zip gcc-3c56d8d8de26c7d7ac46733b7b3c01ae34e144f1.tar.gz gcc-3c56d8d8de26c7d7ac46733b7b3c01ae34e144f1.tar.bz2 |
Use symtab_node::order in LTO sections with body.
2019-10-30 Martin Liska <mliska@suse.cz>
PR lto/91393
PR lto/88220
* cgraph.c (cgraph_node::get_create): Overwrite node->order
from a first_clone in order to get proper LTO section
in LTO stream.
(cgraph_node::get_untransformed_body):
Use lto_get_section_data where symtab_node::order
must be provided.
* cgraphclones.c (cgraph_node::find_replacement):
Update also symbol order.
* ipa-fnsummary.c (ipa_fn_summary_read):
Use new function lto_get_summary_section_data.
* ipa-hsa.c (ipa_hsa_read_summary): Likewise.
* ipa-icf.c (sem_item_optimizer::read_summary):
Likewise.
* ipa-prop.c (ipa_prop_read_jump_functions):
Likewise.
(ipcp_read_transformation_summaries): Likewise.
* ipa-sra.c (ipa_sra_read_summary): Likewise.
* lto-cgraph.c (input_node): Add also order_base.
(input_varpool_node): Likewise.
(input_cgraph_1): Assign the order_base.
(input_cgraph_opt_summary): Use new lto_get_summary_section_data.
* lto-opts.c (lto_write_options): Pass new argument.
* lto-section-in.c (lto_get_section_data): Add new argumente order.
(lto_get_summary_section_data): New.
(lto_get_raw_section_data): Add order argument.
(lto_create_simple_input_block): Likewise.
* lto-section-out.c (lto_destroy_simple_output_block):
Likewise.
* lto-streamer-in.c (lto_input_toplevel_asms):
Use lto_get_summary_section_data.
(lto_input_mode_table): Likewise.
* lto-streamer-out.c (produce_asm): Pass symtab_node::order.
(lto_output_toplevel_asms): Pass new argument.
(copy_function_or_variable): Likewise.
(produce_lto_section):Likewise.
(produce_symtab): Likewise.
(lto_write_mode_table): Likewise.
(produce_asm_for_decls): Likewise.
* lto-streamer.c (lto_get_section_name): Concat symbol name
and symbol order.
* lto-streamer.h (lto_get_section_data): Add order argument.
(lto_get_summary_section_data): New.
(lto_get_raw_section_data): Add order argument.
(lto_get_section_name): Likewise.
* varpool.c (varpool_node::get_constructor): Pass order argument.
2019-10-30 Martin Liska <mliska@suse.cz>
PR lto/91393
PR lto/88220
* lto-common.c (lto_file_finalize): Use lto_get_summary_section_data.
(get_section_data): Add order argument.
2019-10-30 Martin Liska <mliska@suse.cz>
PR lto/91393
PR lto/88220
* gcc.dg/lto/pr91393_0.c: New test.
From-SVN: r277607
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/lto/lto-common.c | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 3592dda..a20e2d4 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,10 @@ +2019-10-30 Martin Liska <mliska@suse.cz> + + PR lto/91393 + PR lto/88220 + * lto-common.c (lto_file_finalize): Use lto_get_summary_section_data. + (get_section_data): Add order argument. + 2019-10-29 Martin Liska <mliska@suse.cz> * lto.c (do_whole_program_analysis): Pass diff --git a/gcc/lto/lto-common.c b/gcc/lto/lto-common.c index cdfc7b0..fc189ff 100644 --- a/gcc/lto/lto-common.c +++ b/gcc/lto/lto-common.c @@ -2204,7 +2204,7 @@ lto_file_finalize (struct lto_file_decl_data *file_data, lto_file *file, #endif /* Read and verify LTO section. */ - data = lto_get_section_data (file_data, LTO_section_lto, NULL, &len, false); + data = lto_get_summary_section_data (file_data, LTO_section_lto, &len); if (data == NULL) { fatal_error (input_location, "bytecode stream in file %qs generated " @@ -2217,7 +2217,7 @@ lto_file_finalize (struct lto_file_decl_data *file_data, lto_file *file, file_data->lto_section_header.minor_version, file_data->file_name); - data = lto_get_section_data (file_data, LTO_section_decls, NULL, &len); + data = lto_get_summary_section_data (file_data, LTO_section_decls, &len); if (data == NULL) { internal_error ("cannot read %<LTO_section_decls%> from %s", @@ -2396,15 +2396,15 @@ lto_read_section_data (struct lto_file_decl_data *file_data, static const char * get_section_data (struct lto_file_decl_data *file_data, - enum lto_section_type section_type, - const char *name, - size_t *len) + enum lto_section_type section_type, + const char *name, int order, + size_t *len) { htab_t section_hash_table = file_data->section_hash_table; struct lto_section_slot *f_slot; struct lto_section_slot s_slot; const char *section_name = lto_get_section_name (section_type, name, - file_data); + order, file_data); char *data = NULL; *len = 0; |