diff options
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 5e91a79..aa40fe5 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -2416,7 +2416,7 @@ ipa_write_summaries_1 (lto_symtab_encoder_t encoder) /* Write out summaries for all the nodes in the callgraph. */ void -ipa_write_summaries (void) +ipa_write_summaries (bool offload_lto_mode) { lto_symtab_encoder_t encoder; int i, order_pos; @@ -2427,6 +2427,8 @@ ipa_write_summaries (void) if (!flag_generate_lto || seen_error ()) return; + select_what_to_stream (offload_lto_mode); + encoder = lto_symtab_encoder_new (false); /* Create the callgraph set in the same order used in @@ -2453,15 +2455,16 @@ ipa_write_summaries (void) renumber_gimple_stmt_uids (); pop_cfun (); } - if (node->definition) + if (node->definition && node->need_lto_streaming) lto_set_symtab_encoder_in_partition (encoder, node); } FOR_EACH_DEFINED_FUNCTION (node) - if (node->alias) + if (node->alias && node->need_lto_streaming) lto_set_symtab_encoder_in_partition (encoder, node); FOR_EACH_DEFINED_VARIABLE (vnode) - lto_set_symtab_encoder_in_partition (encoder, vnode); + if (vnode->need_lto_streaming) + lto_set_symtab_encoder_in_partition (encoder, vnode); ipa_write_summaries_1 (compute_ltrans_boundary (encoder)); |