> On Wed, 2 Apr 2014, Martin Jambor wrote: > > > Hi, > > > > recently I've been looking into a number of bugs involving > > symtab_remove_unreachable_nodes in one way or another and I have > > always started by applying the hunk below. I did this because > > distinguishing different symbol nodes only according to their names is > > just so inconvenient, especially when compiling C++. The risk is > > minimal and therefore I'd like to propose it to trunk even at this > > late stage, although I can of course wait until the next stage1. > > > > The other hunk is something that I think is also useful when looking > > into all failures of ipcp_verify_propagated_values like e.g. PR 60727. > > > > I included the patch in a recent bootstrap and testing and it of > > course passes. OK for trunk now? Or later? > > I'll leave the actual changes for review by Honza, it's fine at this > stage if he things the changes make sense and are consistent.
It seems fine to me... > > Thanks, > Richard. > > > Thanks, > > > > Martin > > > > > > 2014-04-01 Martin Jambor <mjam...@suse.cz> > > > > * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and > > mention gcc_unreachable before failing. > > * ipa.c (symtab_remove_unreachable_nodes): Also print order of > > removed symbols. > > > > Index: src/gcc/ipa-cp.c > > =================================================================== > > --- src.orig/gcc/ipa-cp.c > > +++ src/gcc/ipa-cp.c > > @@ -884,8 +884,9 @@ ipcp_verify_propagated_values (void) > > { > > if (dump_file) > > { > > + dump_symtab (dump_file); > > fprintf (dump_file, "\nIPA lattices after constant " > > - "propagation:\n"); > > + "propagation, before gcc_unreachable:\n"); This means before symtab_remove_unreachable_nodes? Honza > > print_all_lattices (dump_file, true, false); > > } > > > > Index: src/gcc/ipa.c > > =================================================================== > > --- src.orig/gcc/ipa.c > > +++ src/gcc/ipa.c > > @@ -469,7 +469,7 @@ symtab_remove_unreachable_nodes (bool be > > if (!node->aux) > > { > > if (file) > > - fprintf (file, " %s", node->name ()); > > + fprintf (file, " %s/%i", node->name (), node->order); > > cgraph_remove_node (node); > > changed = true; > > } > > @@ -483,7 +483,7 @@ symtab_remove_unreachable_nodes (bool be > > if (node->definition) > > { > > if (file) > > - fprintf (file, " %s", node->name ()); > > + fprintf (file, " %s/%i", node->name (), node->order); > > node->body_removed = true; > > node->analyzed = false; > > node->definition = false; > > @@ -531,7 +531,7 @@ symtab_remove_unreachable_nodes (bool be > > && (!flag_ltrans || !DECL_EXTERNAL (vnode->decl))) > > { > > if (file) > > - fprintf (file, " %s", vnode->name ()); > > + fprintf (file, " %s/%i", vnode->name (), vnode->order); > > varpool_remove_node (vnode); > > changed = true; > > } > > > > > > -- > Richard Biener <rguent...@suse.de> > SUSE / SUSE Labs > SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 > GF: Jeff Hawn, Jennifer Guild, Felix Imend"orffer