aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@gcc.gnu.org>2018-05-30 16:43:11 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2018-05-30 16:43:11 +0000
commit2a58bcf2da472661cb75fcab1a5e7fa39f44dca2 (patch)
treeb0fdc4b08ef33e951e37f254d986476efd591557
parent5b42d196248425064ca9013f63510834744e169e (diff)
downloadgcc-2a58bcf2da472661cb75fcab1a5e7fa39f44dca2.zip
gcc-2a58bcf2da472661cb75fcab1a5e7fa39f44dca2.tar.gz
gcc-2a58bcf2da472661cb75fcab1a5e7fa39f44dca2.tar.bz2
passes.c (ipa_write_summaries): Only modify statements if body is in memory.
* passes.c (ipa_write_summaries): Only modify statements if body is in memory. * cgraphunit.c (ipa_passes): Also produce intermeidate code when incrementally linking. (ipa_passes): Likewise. * lto-cgraph.c (lto_output_node): When incrementally linking do not pass down resolution info. * common.opt (flag_incremental_link): Update info. * gcc.c (plugin specs): Turn flinker-output=* to -plugin-opt=-linker-output-known * toplev.c (compile_file): Also cut compilation when doing incremental link. * flag-types. (enum lto_partition_model): Add LTO_LINKER_OUTPUT_NOLTOREL. (invoke.texi): Add -flinker-output docs. * ipa.c (symbol_table::remove_unreachable_nodes): Handle LTO incremental link same way as WPA; do not stream in dead initializers. From-SVN: r260964
-rw-r--r--gcc/lto-streamer-out.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index f614aef..eb726bf 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -2406,7 +2406,9 @@ lto_output (void)
}
decl_state = lto_new_out_decl_state ();
lto_push_out_decl_state (decl_state);
- if (gimple_has_body_p (node->decl) || !flag_wpa
+ if (gimple_has_body_p (node->decl)
+ || (!flag_wpa
+ && flag_incremental_link != INCREMENTAL_LINK_LTO)
/* Thunks have no body but they may be synthetized
at WPA time. */
|| DECL_ARGUMENTS (node->decl))
@@ -2438,7 +2440,8 @@ lto_output (void)
decl_state = lto_new_out_decl_state ();
lto_push_out_decl_state (decl_state);
if (DECL_INITIAL (node->decl) != error_mark_node
- || !flag_wpa)
+ || (!flag_wpa
+ && flag_incremental_link != INCREMENTAL_LINK_LTO))
output_constructor (node);
else
copy_function_or_variable (node);