passes.c (ipa_write_summaries): Only modify statements if body is in memory.
authorJan Hubicka <hubicka@gcc.gnu.org>
Wed, 30 May 2018 16:43:11 +0000 (16:43 +0000)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 30 May 2018 16:43:11 +0000 (16:43 +0000)
* 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

gcc/lto-streamer-out.c

index f614aef201f416736c4d19c48c1e2ad737c57676..eb726bfb22e558a99d2f71bb63344b21ec4abb77 100644 (file)
@@ -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);