public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Move combine over to statistics_counter_event.
@ 2023-07-20  2:41 Andrew Pinski
  2023-07-20  7:34 ` Richard Biener
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Pinski @ 2023-07-20  2:41 UTC (permalink / raw)
  To: gcc-patches; +Cc: Andrew Pinski

Since we have statistics_counter_event now, combine should use that
instead of it is own custom printing of statistics.
The only thing that is not done any more after this patch is printing
out the total stats for the whole TU.

Note you need to use -fdump-rtl-combine-stats to get the stats in the combine
dump unlike before where the stats was dumped directly into the file.

OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.

gcc/ChangeLog:

	* combine.cc (dump_combine_stats): Remove.
	(dump_combine_total_stats): Remove.
	(total_attempts, total_merges, total_extras,
	total_successes): Remove.
	(combine_instructions): Don't increment total stats
	instead use statistics_counter_event.
	* dumpfile.cc (print_combine_total_stats): Remove.
	* dumpfile.h (print_combine_total_stats): Remove.
	(dump_combine_total_stats): Remove.
	* passes.cc (finish_optimization_passes):
	Don't call print_combine_total_stats.
	* rtl.h (dump_combine_total_stats): Remove.
	(dump_combine_stats): Remove.
---
 gcc/combine.cc  | 30 ++++--------------------------
 gcc/dumpfile.cc |  9 ---------
 gcc/dumpfile.h  |  3 ---
 gcc/passes.cc   |  7 -------
 gcc/rtl.h       |  2 --
 5 files changed, 4 insertions(+), 47 deletions(-)

diff --git a/gcc/combine.cc b/gcc/combine.cc
index d9161b257e8..4bf867d74b0 100644
--- a/gcc/combine.cc
+++ b/gcc/combine.cc
@@ -108,10 +108,6 @@ static int combine_extras;
 
 static int combine_successes;
 
-/* Totals over entire compilation.  */
-
-static int total_attempts, total_merges, total_extras, total_successes;
-
 /* combine_instructions may try to replace the right hand side of the
    second instruction with the value of an associated REG_EQUAL note
    before throwing it at try_combine.  That is problematic when there
@@ -1456,10 +1452,10 @@ retry:
     undobuf.frees = 0;
   }
 
-  total_attempts += combine_attempts;
-  total_merges += combine_merges;
-  total_extras += combine_extras;
-  total_successes += combine_successes;
+  statistics_counter_event (cfun, "attempts", combine_attempts);
+  statistics_counter_event (cfun, "merges", combine_merges);
+  statistics_counter_event (cfun, "extras", combine_extras);
+  statistics_counter_event (cfun, "successes", combine_successes);
 
   nonzero_sign_valid = 0;
   rtl_hooks = general_rtl_hooks;
@@ -14936,24 +14932,6 @@ unmentioned_reg_p (rtx equiv, rtx expr)
   return false;
 }
 \f
-DEBUG_FUNCTION void
-dump_combine_stats (FILE *file)
-{
-  fprintf
-    (file,
-     ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n\n",
-     combine_attempts, combine_merges, combine_extras, combine_successes);
-}
-
-void
-dump_combine_total_stats (FILE *file)
-{
-  fprintf
-    (file,
-     "\n;; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n",
-     total_attempts, total_merges, total_extras, total_successes);
-}
-\f
 /* Make pseudo-to-pseudo copies after every hard-reg-to-pseudo-copy, because
    the reg-to-reg copy can usefully combine with later instructions, but we
    do not want to combine the hard reg into later instructions, for that
diff --git a/gcc/dumpfile.cc b/gcc/dumpfile.cc
index 51f68c8c6b4..a2050d13009 100644
--- a/gcc/dumpfile.cc
+++ b/gcc/dumpfile.cc
@@ -2074,15 +2074,6 @@ dump_function (int phase, tree fn)
     }
 }
 
-/* Print information from the combine pass on dump_file.  */
-
-void
-print_combine_total_stats (void)
-{
-  if (dump_file)
-    dump_combine_total_stats (dump_file);
-}
-
 /* Enable RTL dump for all the RTL passes.  */
 
 bool
diff --git a/gcc/dumpfile.h b/gcc/dumpfile.h
index 7d5eca899dc..c41940624ca 100644
--- a/gcc/dumpfile.h
+++ b/gcc/dumpfile.h
@@ -647,14 +647,11 @@ class auto_dump_scope
   auto_dump_scope scope (NAME, USER_LOC)
 
 extern void dump_function (int phase, tree fn);
-extern void print_combine_total_stats (void);
 extern bool enable_rtl_dump_file (void);
 
 /* In tree-dump.cc  */
 extern void dump_node (const_tree, dump_flags_t, FILE *);
 
-/* In combine.cc  */
-extern void dump_combine_total_stats (FILE *);
 /* In cfghooks.cc  */
 extern void dump_bb (FILE *, basic_block, int, dump_flags_t);
 
diff --git a/gcc/passes.cc b/gcc/passes.cc
index d7b0ad271a1..6f894a41d22 100644
--- a/gcc/passes.cc
+++ b/gcc/passes.cc
@@ -359,13 +359,6 @@ finish_optimization_passes (void)
       dumps->dump_finish (pass_profile_1->static_pass_number);
     }
 
-  if (optimize > 0)
-    {
-      dumps->dump_start (pass_combine_1->static_pass_number, NULL);
-      print_combine_total_stats ();
-      dumps->dump_finish (pass_combine_1->static_pass_number);
-    }
-
   /* Do whatever is necessary to finish printing the graphs.  */
   for (i = TDI_end; (dfi = dumps->get_dump_file_info (i)) != NULL; ++i)
     if (dfi->graph_dump_initialized)
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 098dc4ccc1c..03b7d058295 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -4216,8 +4216,6 @@ extern bool validate_subreg (machine_mode, machine_mode,
 /* In combine.cc  */
 extern unsigned int extended_count (const_rtx, machine_mode, int);
 extern rtx remove_death (unsigned int, rtx_insn *);
-extern void dump_combine_stats (FILE *);
-extern void dump_combine_total_stats (FILE *);
 extern rtx make_compound_operation (rtx, enum rtx_code);
 
 /* In sched-rgn.cc.  */
-- 
2.31.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Move combine over to statistics_counter_event.
  2023-07-20  2:41 [PATCH] Move combine over to statistics_counter_event Andrew Pinski
@ 2023-07-20  7:34 ` Richard Biener
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Biener @ 2023-07-20  7:34 UTC (permalink / raw)
  To: Andrew Pinski; +Cc: gcc-patches

On Thu, Jul 20, 2023 at 4:42 AM Andrew Pinski via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Since we have statistics_counter_event now, combine should use that
> instead of it is own custom printing of statistics.
> The only thing that is not done any more after this patch is printing
> out the total stats for the whole TU.

you can use -fdump-statistics-stats to get the total counts (but not
in the combine
dumpfile).

>
> Note you need to use -fdump-rtl-combine-stats to get the stats in the combine
> dump unlike before where the stats was dumped directly into the file.
>
> OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.

OK.

Thanks,
Richard.

> gcc/ChangeLog:
>
>         * combine.cc (dump_combine_stats): Remove.
>         (dump_combine_total_stats): Remove.
>         (total_attempts, total_merges, total_extras,
>         total_successes): Remove.
>         (combine_instructions): Don't increment total stats
>         instead use statistics_counter_event.
>         * dumpfile.cc (print_combine_total_stats): Remove.
>         * dumpfile.h (print_combine_total_stats): Remove.
>         (dump_combine_total_stats): Remove.
>         * passes.cc (finish_optimization_passes):
>         Don't call print_combine_total_stats.
>         * rtl.h (dump_combine_total_stats): Remove.
>         (dump_combine_stats): Remove.
> ---
>  gcc/combine.cc  | 30 ++++--------------------------
>  gcc/dumpfile.cc |  9 ---------
>  gcc/dumpfile.h  |  3 ---
>  gcc/passes.cc   |  7 -------
>  gcc/rtl.h       |  2 --
>  5 files changed, 4 insertions(+), 47 deletions(-)
>
> diff --git a/gcc/combine.cc b/gcc/combine.cc
> index d9161b257e8..4bf867d74b0 100644
> --- a/gcc/combine.cc
> +++ b/gcc/combine.cc
> @@ -108,10 +108,6 @@ static int combine_extras;
>
>  static int combine_successes;
>
> -/* Totals over entire compilation.  */
> -
> -static int total_attempts, total_merges, total_extras, total_successes;
> -
>  /* combine_instructions may try to replace the right hand side of the
>     second instruction with the value of an associated REG_EQUAL note
>     before throwing it at try_combine.  That is problematic when there
> @@ -1456,10 +1452,10 @@ retry:
>      undobuf.frees = 0;
>    }
>
> -  total_attempts += combine_attempts;
> -  total_merges += combine_merges;
> -  total_extras += combine_extras;
> -  total_successes += combine_successes;
> +  statistics_counter_event (cfun, "attempts", combine_attempts);
> +  statistics_counter_event (cfun, "merges", combine_merges);
> +  statistics_counter_event (cfun, "extras", combine_extras);
> +  statistics_counter_event (cfun, "successes", combine_successes);
>
>    nonzero_sign_valid = 0;
>    rtl_hooks = general_rtl_hooks;
> @@ -14936,24 +14932,6 @@ unmentioned_reg_p (rtx equiv, rtx expr)
>    return false;
>  }
>
> -DEBUG_FUNCTION void
> -dump_combine_stats (FILE *file)
> -{
> -  fprintf
> -    (file,
> -     ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n\n",
> -     combine_attempts, combine_merges, combine_extras, combine_successes);
> -}
> -
> -void
> -dump_combine_total_stats (FILE *file)
> -{
> -  fprintf
> -    (file,
> -     "\n;; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n",
> -     total_attempts, total_merges, total_extras, total_successes);
> -}
> -
>  /* Make pseudo-to-pseudo copies after every hard-reg-to-pseudo-copy, because
>     the reg-to-reg copy can usefully combine with later instructions, but we
>     do not want to combine the hard reg into later instructions, for that
> diff --git a/gcc/dumpfile.cc b/gcc/dumpfile.cc
> index 51f68c8c6b4..a2050d13009 100644
> --- a/gcc/dumpfile.cc
> +++ b/gcc/dumpfile.cc
> @@ -2074,15 +2074,6 @@ dump_function (int phase, tree fn)
>      }
>  }
>
> -/* Print information from the combine pass on dump_file.  */
> -
> -void
> -print_combine_total_stats (void)
> -{
> -  if (dump_file)
> -    dump_combine_total_stats (dump_file);
> -}
> -
>  /* Enable RTL dump for all the RTL passes.  */
>
>  bool
> diff --git a/gcc/dumpfile.h b/gcc/dumpfile.h
> index 7d5eca899dc..c41940624ca 100644
> --- a/gcc/dumpfile.h
> +++ b/gcc/dumpfile.h
> @@ -647,14 +647,11 @@ class auto_dump_scope
>    auto_dump_scope scope (NAME, USER_LOC)
>
>  extern void dump_function (int phase, tree fn);
> -extern void print_combine_total_stats (void);
>  extern bool enable_rtl_dump_file (void);
>
>  /* In tree-dump.cc  */
>  extern void dump_node (const_tree, dump_flags_t, FILE *);
>
> -/* In combine.cc  */
> -extern void dump_combine_total_stats (FILE *);
>  /* In cfghooks.cc  */
>  extern void dump_bb (FILE *, basic_block, int, dump_flags_t);
>
> diff --git a/gcc/passes.cc b/gcc/passes.cc
> index d7b0ad271a1..6f894a41d22 100644
> --- a/gcc/passes.cc
> +++ b/gcc/passes.cc
> @@ -359,13 +359,6 @@ finish_optimization_passes (void)
>        dumps->dump_finish (pass_profile_1->static_pass_number);
>      }
>
> -  if (optimize > 0)
> -    {
> -      dumps->dump_start (pass_combine_1->static_pass_number, NULL);
> -      print_combine_total_stats ();
> -      dumps->dump_finish (pass_combine_1->static_pass_number);
> -    }
> -
>    /* Do whatever is necessary to finish printing the graphs.  */
>    for (i = TDI_end; (dfi = dumps->get_dump_file_info (i)) != NULL; ++i)
>      if (dfi->graph_dump_initialized)
> diff --git a/gcc/rtl.h b/gcc/rtl.h
> index 098dc4ccc1c..03b7d058295 100644
> --- a/gcc/rtl.h
> +++ b/gcc/rtl.h
> @@ -4216,8 +4216,6 @@ extern bool validate_subreg (machine_mode, machine_mode,
>  /* In combine.cc  */
>  extern unsigned int extended_count (const_rtx, machine_mode, int);
>  extern rtx remove_death (unsigned int, rtx_insn *);
> -extern void dump_combine_stats (FILE *);
> -extern void dump_combine_total_stats (FILE *);
>  extern rtx make_compound_operation (rtx, enum rtx_code);
>
>  /* In sched-rgn.cc.  */
> --
> 2.31.1
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-07-20  7:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-20  2:41 [PATCH] Move combine over to statistics_counter_event Andrew Pinski
2023-07-20  7:34 ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).