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 >