> 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