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
>

Reply via email to