> > We explicitely do not use debug-info-level tests in free-lang-data > to allow mixing -g and -g0 objects. Are you sure doing the above > doesn't mess up tree merging enough to effectively enlarge WPA > memory use and the merged decl sections? > > [I'm quite sure firefox build system manages to mess up -g vs. -g0 > in some places ;)]
Hmm, I will try the debug build with firefox on this. -fdump-ipa-devirt now dumps all main variants that are duplicates of one ODR type. We definitely have types with hundreds of duplicates, so there are quite common cases where tree merging does not fire. > > > + return (!DECL_IGNORED_P (decl) && !is_redundant_typedef (decl)); > > +} > > + > > The patch would be ok if you simply export is_redundant_typedef > and inline the DECL_IGNORED_P check into free-lang-data. OK, I had that originally, will return that back. is_redundant_typedef is declared inline. Putting it to tree.h drags bit too many dwarf2out internals, but I suppose it is OK to just turn it non-inline. It is a type of function where inliner should be able to decide. Honza > > Thanks, > Richard.