Print lto report at the right place
authorAndi Kleen <ak@linux.intel.com>
Tue, 23 Apr 2013 03:10:16 +0000 (03:10 +0000)
committerAndi Kleen <ak@gcc.gnu.org>
Tue, 23 Apr 2013 03:10:16 +0000 (03:10 +0000)
The LTO report is currently printed when the type merging hash tables
are already destroyed, which makes them always show up as empty.
Print it earlier. Right now it's printed twice.

gcc/:

2013-04-22  Andi Kleen  <ak@linux.intel.com>

* lto/lto.c (print_lto_report_1): Declare early.
(read_cgraph_and_symbols): Call print_lto_report_1 early.

From-SVN: r198173

gcc/ChangeLog
gcc/lto/lto.c

index 7500eb7bde421d1b5f1f52e709ecca2605b121ea..082dfc646050124c07ece4f34ef00e679b0e4bdf 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-22  Andi Kleen  <ak@linux.intel.com>
+
+       * lto/lto.c (print_lto_report_1): Declare early.
+       (read_cgraph_and_symbols): Call print_lto_report_1 early.
+
 2013-04-22  Andi Kleen  <ak@linux.intel.com>
 
        * common.opt (-flto-report-wpa): Add.
index f19bbb5bc624e16aa78bc35443ae77a55bddb586..18af8c462175201d8047749885fef32159a92f11 100644 (file)
@@ -2895,6 +2895,8 @@ lto_flatten_files (struct lto_file_decl_data **orig, int count, int last_file_ix
 static int real_file_count;
 static GTY((length ("real_file_count + 1"))) struct lto_file_decl_data **real_file_decl_data;
 
+static void print_lto_report_1 (void);
+
 /* Read all the symbols from the input files FNAMES.  NFILES is the
    number of files requested in the command line.  Instantiate a
    global call graph by aggregating all the sub-graphs found in each
@@ -2986,6 +2988,10 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames)
   if (resolution_file_name)
     fclose (resolution);
 
+  /* Show the LTO report before launching LTRANS.  */
+  if (flag_lto_report || (flag_wpa && flag_lto_report_wpa))
+    print_lto_report_1 ();
+
   /* Free gimple type merging datastructures.  */
   htab_delete (gimple_types);
   gimple_types = NULL;