> 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 <[email protected]>
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