> Hi Honza,
> 
> > > >
> > > > > I checked update_jump_functions_after_inlining(), and found one
> > > > suspicious place:
> > > > >
> > > > >   for (i = 0; i < count; i++)
> > > > >     {
> > > > >       struct ipa_jump_func *dst = ipa_get_ith_jump_func (args, i);
> > > > >       if (!top)
> > > > >         {
> > > > >           ipa_set_jf_unknown (dst);
> > > > >           <<<<<<<<<<<<<<<<<   we should also invalidate 
> > > > > dst->agg.items.
> > > > This is a good catch. In meantime a smaller testcase surfaces in
> > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92528
> > > > I am re-building Firefox with the patch I attache to the PR.
> > > >
> > >
> > > Just curious how this went. Are the firefox issue sorted or is there
> > something still to be done?
> > 
> > Yes, Firefox is working now for me and in fact I am just in the progress of
> > updating my branch at mozilla try servers to do some benchmarking (still
> > have few warnings to cache etc.).
> > 
> > There was additional interesting consequence of the patch in making inliner
> > noticeably slower both on cc1 compilation and Firefox:
> > propagating a lot more values made it to consider a lot more inlining
> > contextes.  So I finally pushed out patches treating non-linearities there.
> > 
> > What remains to do is to fix the value ranges - ipa_set_jf_unknown
> > should not invalidate them.   I will try to do that soon.
> > 
> 
> Ah, that's awesome, thanks for all the hard work!

Just for record, the oroginal bug was fixed by Feng here :))

2019-11-15  Feng Xue  <f...@os.amperecomputing.com>

        PR ipa/92528
        * ipa-prop.c (update_jump_functions_after_inlining):
        * Invalidate aggregate jump function when inlined-to caller
        has no edge summary.

Seems there is some work ahead since currently LTO built firefox crashes
at startup.  I am trying to diagnose that now.

Honza
> 
> Cheers,
> Tamar
> 
> > Honza
> > >
> > > Thanks,
> > > Tamar
> > >
> > > > Honza

Reply via email to