> On Mon, Nov 28, 2016 at 11:52:53AM +0100, Jan Hubicka wrote: > > > > IPA-ICF performs some code-generation visible changes from hash table > > > > traversal, where the hash values can be different between -g and -g0 > > > > (I bet it hashes DECL_UID in somewhere, perhaps other things). > > > > > > It should not - the hash is stable for LTO streaming. > > > I think ICF merging -g and -g0 function is a valid transform (we could > > > try to pick the body with debug info in it), but it would be nice to > > > understand what is causing the differences? > > > > Actually I think we should understand it - otherwise we will continue seeing > > difference between -g and -g0. At some point we compare easy properties, > > like > > number of basic blocks and ssa names. Perhaps those are affected by -g? > > No, number of bbs and ssa names (and their exact versions) must be identical > with -g/-g0. > I've already checked the patch in because Richard acked it this morning. > But I can debug the hash computation.
It would be nice - otherwise we will likely run into another -g0/g difference. If we hash something affected by debug info, there is no reason for function with -g to match if and only if they match with -g0 (not speaking of LTOing together unit built with -g with unit built without) Thanks, Honza > > Jakub