On Fri, May 30, 2014 at 7:10 PM, Jeff Law <l...@redhat.com> wrote: > On 05/28/14 10:06, Ilya Enkovich wrote: >> >> Hi, >> >> This patch keeps instrumented and original versions together and preserve >> tranparent alias chain during symbol name privatization. >> >> Bootstrapped and tested on linux-x86_64. >> >> Thanks, >> Ilya >> -- >> gcc/ >> >> 2013-05-28 Ilya Enkovich <ilya.enkov...@intel.com> >> >> * lto/lto-partition.c (add_symbol_to_partition_1): Keep original >> and instrumented versions together. > > This part is OK. Note lto/ has its own ChangeLog, so put the ChangeLog > entry there and don't use the "lto/" prefix in the ChangeLog entry. > > >> (privatize_symbol_name): Restore transparent alias chain if >> required. > > What exactly are you doing here? The comment in the code doesn't really > make it clear what you are doing or why. > > >> + /* We could change name which is a target of transparent alias >> + chain of instrumented function name. Fix alias chain if so .*/ > > So are you saying that we want to change the name? Or that it could have > been changed and we have to adjust something because it was changed? > > I'm certainly not as familiar with the LTO stuff as I should be -- what is > the purpose behing chaining the DECL_ASSEMBLER_NAME nodes?
Something gross: /* Nonzero in an IDENTIFIER_NODE if the name is a local alias, whose uses are to be substituted for uses of the TREE_CHAINed identifier. */ #define IDENTIFIER_TRANSPARENT_ALIAS(NODE) \ (IDENTIFIER_NODE_CHECK (NODE)->base.deprecated_flag) this should be all moved to the symbol table level. (and IDENTIFIER_NODE shouldn't have to have tree_common.chain and thus become smaller). Richard. > jeff >