Commit 814f3331 by Jan Hubicka Committed by Jan Hubicka

lto.c (do_stream_out): Add PART parameter; open dump file.


	* lto.c (do_stream_out): Add PART parameter; open dump file.
	(stream_out): Add PART parameter; pass it to do_stream_out.
	(lto_wpa_write_files): Update call of stream_out.

	* lto-streamer-out.c (copy_function_or_variable): Dump info about
	copying section.

From-SVN: r262645
parent fb5f0c20
2018-07-13 Jan Hubicka <hubicka@ucw.cz>
* lto-streamer-out.c (copy_function_or_variable): Dump info about
copying section.
2018-07-13 Bill Schmidt <wschmidt@linux.ibm.com> 2018-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
Steve Munroe <munroesj52@gmail.com> Steve Munroe <munroesj52@gmail.com>
......
...@@ -2293,6 +2293,8 @@ copy_function_or_variable (struct symtab_node *node) ...@@ -2293,6 +2293,8 @@ copy_function_or_variable (struct symtab_node *node)
struct lto_in_decl_state *in_state; struct lto_in_decl_state *in_state;
struct lto_out_decl_state *out_state = lto_get_out_decl_state (); struct lto_out_decl_state *out_state = lto_get_out_decl_state ();
if (streamer_dump_file)
fprintf (streamer_dump_file, "Copying section for %s\n", name);
lto_begin_section (section_name, false); lto_begin_section (section_name, false);
free (section_name); free (section_name);
......
2018-07-13 Jan Hubicka <hubicka@ucw.cz>
* lto.c (do_stream_out): Add PART parameter; open dump file.
(stream_out): Add PART parameter; pass it to do_stream_out.
(lto_wpa_write_files): Update call of stream_out.
2018-07-04 Martin Liska <mliska@suse.cz> 2018-07-04 Martin Liska <mliska@suse.cz>
PR middle-end/66240 PR middle-end/66240
......
...@@ -2326,13 +2326,15 @@ static lto_file *current_lto_file; ...@@ -2326,13 +2326,15 @@ static lto_file *current_lto_file;
/* Actually stream out ENCODER into TEMP_FILENAME. */ /* Actually stream out ENCODER into TEMP_FILENAME. */
static void static void
do_stream_out (char *temp_filename, lto_symtab_encoder_t encoder) do_stream_out (char *temp_filename, lto_symtab_encoder_t encoder, int part)
{ {
lto_file *file = lto_obj_file_open (temp_filename, true); lto_file *file = lto_obj_file_open (temp_filename, true);
if (!file) if (!file)
fatal_error (input_location, "lto_obj_file_open() failed"); fatal_error (input_location, "lto_obj_file_open() failed");
lto_set_current_out_file (file); lto_set_current_out_file (file);
gcc_assert (!dump_file);
streamer_dump_file = dump_begin (TDI_lto_stream_out, NULL, part);
ipa_write_optimization_summaries (encoder); ipa_write_optimization_summaries (encoder);
free (CONST_CAST (char *, file->filename)); free (CONST_CAST (char *, file->filename));
...@@ -2340,6 +2342,11 @@ do_stream_out (char *temp_filename, lto_symtab_encoder_t encoder) ...@@ -2340,6 +2342,11 @@ do_stream_out (char *temp_filename, lto_symtab_encoder_t encoder)
lto_set_current_out_file (NULL); lto_set_current_out_file (NULL);
lto_obj_file_close (file); lto_obj_file_close (file);
free (file); free (file);
if (streamer_dump_file)
{
dump_end (TDI_lto_stream_out, streamer_dump_file);
streamer_dump_file = NULL;
}
} }
/* Wait for forked process and signal errors. */ /* Wait for forked process and signal errors. */
...@@ -2372,14 +2379,14 @@ wait_for_child () ...@@ -2372,14 +2379,14 @@ wait_for_child ()
static void static void
stream_out (char *temp_filename, lto_symtab_encoder_t encoder, stream_out (char *temp_filename, lto_symtab_encoder_t encoder,
bool ARG_UNUSED (last)) bool ARG_UNUSED (last), int part)
{ {
#ifdef HAVE_WORKING_FORK #ifdef HAVE_WORKING_FORK
static int nruns; static int nruns;
if (lto_parallelism <= 1) if (lto_parallelism <= 1)
{ {
do_stream_out (temp_filename, encoder); do_stream_out (temp_filename, encoder, part);
return; return;
} }
...@@ -2399,12 +2406,12 @@ stream_out (char *temp_filename, lto_symtab_encoder_t encoder, ...@@ -2399,12 +2406,12 @@ stream_out (char *temp_filename, lto_symtab_encoder_t encoder,
if (!cpid) if (!cpid)
{ {
setproctitle ("lto1-wpa-streaming"); setproctitle ("lto1-wpa-streaming");
do_stream_out (temp_filename, encoder); do_stream_out (temp_filename, encoder, part);
exit (0); exit (0);
} }
/* Fork failed; lets do the job ourseleves. */ /* Fork failed; lets do the job ourseleves. */
else if (cpid == -1) else if (cpid == -1)
do_stream_out (temp_filename, encoder); do_stream_out (temp_filename, encoder, part);
else else
nruns++; nruns++;
} }
...@@ -2412,13 +2419,13 @@ stream_out (char *temp_filename, lto_symtab_encoder_t encoder, ...@@ -2412,13 +2419,13 @@ stream_out (char *temp_filename, lto_symtab_encoder_t encoder,
else else
{ {
int i; int i;
do_stream_out (temp_filename, encoder); do_stream_out (temp_filename, encoder, part);
for (i = 0; i < nruns; i++) for (i = 0; i < nruns; i++)
wait_for_child (); wait_for_child ();
} }
asm_nodes_output = true; asm_nodes_output = true;
#else #else
do_stream_out (temp_filename, encoder); do_stream_out (temp_filename, encoder, part);
#endif #endif
} }
...@@ -2508,7 +2515,7 @@ lto_wpa_write_files (void) ...@@ -2508,7 +2515,7 @@ lto_wpa_write_files (void)
} }
gcc_checking_assert (lto_symtab_encoder_size (part->encoder) || !i); gcc_checking_assert (lto_symtab_encoder_size (part->encoder) || !i);
stream_out (temp_filename, part->encoder, i == n_sets - 1); stream_out (temp_filename, part->encoder, i == n_sets - 1, i);
part->encoder = NULL; part->encoder = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment