lto.c (do_stream_out): Add PART parameter; open dump file.
authorJan Hubicka <hubicka@ucw.cz>
Fri, 13 Jul 2018 19:09:13 +0000 (21:09 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 13 Jul 2018 19:09:13 +0000 (19:09 +0000)
* 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

gcc/ChangeLog
gcc/lto-streamer-out.c
gcc/lto/ChangeLog
gcc/lto/lto.c

index 70cf49636f17fe1129bb9fe2f3fec5312ed9b914..14bfd9ea69d1d2a7fd51ee7213e4b941ed710c49 100644 (file)
@@ -1,3 +1,8 @@
+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>
            Steve Munroe  <munroesj52@gmail.com>
 
index bdbe591f8a1618017450a0b7eb21a2ab0a7c22e9..78b90e7f59624bb18c45d444757e13a68a3c26fa 100644 (file)
@@ -2293,6 +2293,8 @@ copy_function_or_variable (struct symtab_node *node)
   struct lto_in_decl_state *in_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);
   free (section_name);
 
index daaf92f489c3c0334ad0dd706634ae64666c3fde..91e8647d42a62f38f5576d5d27c1fef6e5853722 100644 (file)
@@ -1,3 +1,9 @@
+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>
 
        PR middle-end/66240
index 6f10dab27e5cf140d704a147e2d94a0e5f2404ec..d1add15efeb81f912cf061d00be32c3f70be1f6b 100644 (file)
@@ -2326,13 +2326,15 @@ static lto_file *current_lto_file;
 /* Actually stream out ENCODER into TEMP_FILENAME.  */
 
 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);
   if (!file)
     fatal_error (input_location, "lto_obj_file_open() failed");
   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);
 
   free (CONST_CAST (char *, file->filename));
@@ -2340,6 +2342,11 @@ do_stream_out (char *temp_filename, lto_symtab_encoder_t encoder)
   lto_set_current_out_file (NULL);
   lto_obj_file_close (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.  */
@@ -2372,14 +2379,14 @@ wait_for_child ()
 
 static void
 stream_out (char *temp_filename, lto_symtab_encoder_t encoder,
-           bool ARG_UNUSED (last))
+           bool ARG_UNUSED (last), int part)
 {
 #ifdef HAVE_WORKING_FORK
   static int nruns;
 
   if (lto_parallelism <= 1)
     {
-      do_stream_out (temp_filename, encoder);
+      do_stream_out (temp_filename, encoder, part);
       return;
     }
 
@@ -2399,12 +2406,12 @@ stream_out (char *temp_filename, lto_symtab_encoder_t encoder,
       if (!cpid)
        {
          setproctitle ("lto1-wpa-streaming");
-         do_stream_out (temp_filename, encoder);
+         do_stream_out (temp_filename, encoder, part);
          exit (0);
        }
       /* Fork failed; lets do the job ourseleves.  */
       else if (cpid == -1)
-        do_stream_out (temp_filename, encoder);
+        do_stream_out (temp_filename, encoder, part);
       else
        nruns++;
     }
@@ -2412,13 +2419,13 @@ stream_out (char *temp_filename, lto_symtab_encoder_t encoder,
   else
     {
       int i;
-      do_stream_out (temp_filename, encoder);
+      do_stream_out (temp_filename, encoder, part);
       for (i = 0; i < nruns; i++)
        wait_for_child ();
     }
   asm_nodes_output = true;
 #else
-  do_stream_out (temp_filename, encoder);
+  do_stream_out (temp_filename, encoder, part);
 #endif
 }
 
@@ -2508,7 +2515,7 @@ lto_wpa_write_files (void)
        }
       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;