> Hi. > > I've noticed a redundancy in cgraph_node dump function and I would like to > simplify > and compact how Function flags are printed. Plus I moved 'First run' to the > flags > as well. One diff example: > > @@ -133,8 +125,7 @@ > Referring: > Availability: available > Profile id: 108032747 > - First run: 6 > - Function flags: count: 1 body only_called_at_startup nonfreeing_fn > only_called_at_startup > + Function flags: count:1 first_run:6 body only_called_at_startup > nonfreeing_fn > Called by: > Calls: > g/0 (g) @0x7ffff6ad8000 > > Patch survives regression tests on x86_64-linux-gnu. > Ready for trunk? OK, thanks! Honza > Thanks, > Martin > > gcc/ChangeLog: > > 2018-10-23 Martin Liska <mli...@suse.cz> > > * cgraph.c (cgraph_node::dump): > Remove reduntant dumps and make tp_first_run dump more compact. > > libgcc/ChangeLog: > > 2018-10-23 Martin Liska <mli...@suse.cz> > > * libgcov-profiler.c: Start from 1 in order to distinguish > functions which were seen and these that were not. > --- > gcc/cgraph.c | 15 ++++++--------- > gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c | 2 +- > gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c | 4 ++-- > gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c | 2 +- > libgcc/libgcov-profiler.c | 2 +- > 5 files changed, 11 insertions(+), 14 deletions(-) > >
> diff --git a/gcc/cgraph.c b/gcc/cgraph.c > index 48bab9f2749..b432f7e6500 100644 > --- a/gcc/cgraph.c > +++ b/gcc/cgraph.c > @@ -2016,7 +2016,6 @@ cgraph_node::dump (FILE *f) > if (profile_id) > fprintf (f, " Profile id: %i\n", > profile_id); > - fprintf (f, " First run: %i\n", tp_first_run); > cgraph_function_version_info *vi = function_version (); > if (vi != NULL) > { > @@ -2040,11 +2039,13 @@ cgraph_node::dump (FILE *f) > fprintf (f, " Function flags:"); > if (count.initialized_p ()) > { > - fprintf (f, " count: "); > + fprintf (f, " count:"); > count.dump (f); > } > + if (tp_first_run > 0) > + fprintf (f, " first_run:%i", tp_first_run); > if (origin) > - fprintf (f, " nested in: %s", origin->asm_name ()); > + fprintf (f, " nested in:%s", origin->asm_name ()); > if (gimple_has_body_p (decl)) > fprintf (f, " body"); > if (process) > @@ -2081,10 +2082,6 @@ cgraph_node::dump (FILE *f) > fprintf (f, " unlikely_executed"); > if (frequency == NODE_FREQUENCY_EXECUTED_ONCE) > fprintf (f, " executed_once"); > - if (only_called_at_startup) > - fprintf (f, " only_called_at_startup"); > - if (only_called_at_exit) > - fprintf (f, " only_called_at_exit"); > if (opt_for_fn (decl, optimize_size)) > fprintf (f, " optimize_size"); > if (parallelized_function) > @@ -2096,7 +2093,7 @@ cgraph_node::dump (FILE *f) > { > fprintf (f, " Thunk"); > if (thunk.alias) > - fprintf (f, " of %s (asm: %s)", > + fprintf (f, " of %s (asm:%s)", > lang_hooks.decl_printable_name (thunk.alias, 2), > IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (thunk.alias))); > fprintf (f, " fixed offset %i virtual value %i indirect_offset %i " > @@ -2112,7 +2109,7 @@ cgraph_node::dump (FILE *f) > fprintf (f, " Alias of %s", > lang_hooks.decl_printable_name (thunk.alias, 2)); > if (DECL_ASSEMBLER_NAME_SET_P (thunk.alias)) > - fprintf (f, " (asm: %s)", > + fprintf (f, " (asm:%s)", > IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (thunk.alias))); > fprintf (f, "\n"); > } > diff --git a/gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c > b/gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c > index 455f923f3f4..a622df23ce6 100644 > --- a/gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c > +++ b/gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c > @@ -16,6 +16,6 @@ int main () > { > return foo (); > } > -/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 0" 1 > "profile"} } */ > /* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 1" 1 > "profile"} } */ > /* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 2" 1 > "profile"} } */ > +/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 3" 1 > "profile"} } */ > diff --git a/gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c > b/gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c > index e6eaeb99810..497b585388e 100644 > --- a/gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c > +++ b/gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c > @@ -43,7 +43,7 @@ int main () > > return r; > } > -/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 0" 2 > "profile"} } */ > -/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 1" 1 > "profile"} } */ > +/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 1" 2 > "profile"} } */ > /* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 2" 1 > "profile"} } */ > /* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 3" 1 > "profile"} } */ > +/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 4" 1 > "profile"} } */ > diff --git a/gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c > b/gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c > index 69ce0260828..69daf237483 100644 > --- a/gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c > +++ b/gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c > @@ -17,6 +17,6 @@ int main () > { > return foo (); > } > -/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 0" 1 > "profile"} } */ > /* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 1" 1 > "profile"} } */ > /* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 2" 1 > "profile"} } */ > +/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 3" 1 > "profile"} } */ > diff --git a/libgcc/libgcov-profiler.c b/libgcc/libgcov-profiler.c > index 7a5e50009ce..47c00ee4b4a 100644 > --- a/libgcc/libgcov-profiler.c > +++ b/libgcc/libgcov-profiler.c > @@ -335,7 +335,7 @@ __gcov_indirect_call_profiler_v2 (gcov_type value, void* > cur_func) > #ifdef L_gcov_time_profiler > > /* Counter for first visit of each function. */ > -gcov_type __gcov_time_profiler_counter ATTRIBUTE_HIDDEN; > +gcov_type __gcov_time_profiler_counter ATTRIBUTE_HIDDEN = 1; > > #endif > >