2015-04-02 21:48 GMT+03:00 Jan Hubicka <hubi...@ucw.cz>: >> On 03/20/2015 02:20 AM, Ilya Enkovich wrote: >> >Hi, >> > >> >Identifiers read with input_identifier miss IDENTIFIER_TRANSPARENT_ALIAS >> >bit. We always expect it for instrumentation clones, thus restore it >> >input_cgraph_1. Bootstrapped and tested on x86_64-unknown-linux-gnu. OK >> >for trunk? >> > >> >Thanks, >> >Ilya >> >-- >> >2015-03-20 Ilya Enkovich <ilya.enkov...@intel.com> >> > >> > * lto-cgraph.c (input_cgraph_1): Always link instrumented >> > assembler name with original one. >> This appears to be a code path that only triggers when MPX is >> enabled and is roughly analogous to the code in >> chkp_build_instrumented_fndecl links things up. >> >> OK for the trunk. > > I think this will lead to wrong code. At this time, we may have multple > declarations sharing single assembler name (and thus > IDENTIFIER_TRANSPARENT_ALIAS link). Think of case where one unit defines > static > function and other global function of the same name. We may end up renaming > the > symbol but keeping bogus transparent alias link that will trigger on other > symbol.
That is the reason for fixing chains in privatize_symbol_name. > > During WPA the assembler names are never fully unique, but we also probably do > not need to set IDENTIFIER_TRANSPARENT_ALIAS. > > I think IDENTIFIER_TRANSPARENT_ALIAS should be set in rename_statics and > separately in ltrans on the place we skip lto_symtab merging. At least it is > the place I link it with my patch for supporting transparent aliases in > cgraph. > > I will try to find time to audit chkp code - I missed the addition of > transparent aliases in the initial chkp patches. Symbol table code expect 1-1 > correspondence between symbol table entries and real symbols. Basically all > places we special case aliases or weakrefs needs to be revisited for > transparent aliases. I don't see how 1-1 matching may be achieved now for instrumented functions. We have two cgraph_nodes which actually represent the same function. Thus single real symbol for two nodes. Thanks, Ilya > > Honza