> On 1/7/20 11:27 AM, Martin Liška wrote: > > Which is fine. Apparently there are just few usages of manual printing > > of a symtab node and order like: > > > > fprintf (f, > > "%*s%s/%i %s\n%*s freq:%4.2f", > > indent, "", callee->name (), callee->order, > > > > I can replace these with symtab_node::dump_{asm_}name. > > Hi. > > I'm addressing this by the following refactoring patch. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > Ready to be installed? This is OK. The original reason for using DECL_NAME rather than DECL_ASSEMBLER_NAME was that first is shorter, but also that DECL_ASSEMBLER_NAME may trigger lazy assembler name computation that changes memory layout and let to divergences in resulting code when compiling with and without -fdump-ipa-all.
I guess for dumping we should use dump_name consistently unless we really want to speak of the assembler symbol name (so I would suggest fixing the uses of dump_asm_name in most cases to dump_name) We should not use node->name - this is artifact from times we did not have dump_name for dumping. Honza > Thanks, > Martin > From 45629d68ac4ad9dada74e8c14a10b89025f54762 Mon Sep 17 00:00:00 2001 > From: Martin Liska <mli...@suse.cz> > Date: Tue, 7 Jan 2020 12:37:42 +0100 > Subject: [PATCH] Replace node->name/node->order with node->dump_name. > > gcc/ChangeLog: > > 2020-01-07 Martin Liska <mli...@suse.cz> > > * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name. > (ipa_call_context::estimate_size_and_time): Likewise. > (inline_analyze_function): Likewise. > > gcc/lto/ChangeLog: > > 2020-01-07 Martin Liska <mli...@suse.cz> > > * lto-partition.c (lto_balanced_map): Use symtab_node::dump_name. > --- > gcc/ipa-fnsummary.c | 12 +++++------- > gcc/lto/lto-partition.c | 4 ++-- > 2 files changed, 7 insertions(+), 9 deletions(-) > > diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c > index fa01cb6c083..7c0b6f98e25 100644 > --- a/gcc/ipa-fnsummary.c > +++ b/gcc/ipa-fnsummary.c > @@ -907,8 +907,8 @@ dump_ipa_call_summary (FILE *f, int indent, struct > cgraph_node *node, > int i; > > fprintf (f, > - "%*s%s/%i %s\n%*s freq:%4.2f", > - indent, "", callee->name (), callee->order, > + "%*s%s %s\n%*s freq:%4.2f", > + indent, "", callee->dump_name (), > !edge->inline_failed > ? "inlined" : cgraph_inline_failed_string (edge-> inline_failed), > indent, "", edge->sreal_frequency ().to_double ()); > @@ -3505,9 +3505,8 @@ ipa_call_context::estimate_size_and_time (int *ret_size, > if (dump_file && (dump_flags & TDF_DETAILS)) > { > bool found = false; > - fprintf (dump_file, " Estimating body: %s/%i\n" > - " Known to be false: ", m_node->name (), > - m_node->order); > + fprintf (dump_file, " Estimating body: %s\n" > + " Known to be false: ", m_node->dump_name ()); > > for (i = predicate::not_inlined_condition; > i < (predicate::first_dynamic_condition > @@ -4034,8 +4033,7 @@ inline_analyze_function (struct cgraph_node *node) > push_cfun (DECL_STRUCT_FUNCTION (node->decl)); > > if (dump_file) > - fprintf (dump_file, "\nAnalyzing function: %s/%u\n", > - node->name (), node->order); > + fprintf (dump_file, "\nAnalyzing function: %s\n", node->dump_name ()); > if (opt_for_fn (node->decl, optimize) && !node->thunk.thunk_p) > inline_indirect_intraprocedural_analysis (node); > compute_fn_summary (node, false); > diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c > index 86b2eabe374..5b153c9759e 100644 > --- a/gcc/lto/lto-partition.c > +++ b/gcc/lto/lto-partition.c > @@ -734,10 +734,10 @@ lto_balanced_map (int n_lto_partitions, int > max_partition_size) > best_varpool_pos = varpool_pos; > } > if (dump_file) > - fprintf (dump_file, "Step %i: added %s/%i, size %i, " > + fprintf (dump_file, "Step %i: added %s, size %i, " > "cost %" PRId64 "/%" PRId64 " " > "best %" PRId64 "/%" PRId64", step %i\n", i, > - order[i]->name (), order[i]->order, > + order[i]->dump_name (), > partition->insns, cost, internal, > best_cost, best_internal, best_i); > /* Partition is too large, unwind into step when best cost was reached > and > -- > 2.24.1 >