> 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

Reply via email to