https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93315
Bug ID: 93315 Summary: ICE in jit testsuite since "Missed function specialization + partial devirtualization" (v8) Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: dmalcolm at gcc dot gnu.org CC: marxin at gcc dot gnu.org Target Milestone: --- f1ba88b1b20cb579b3b7ce6ce65470205742be7e "Missed function specialization + partial devirtualization" (v8) broke most of the jit testsuite. > @@ -169,7 +261,10 @@ ipa_profile_generate_summary (void) > basic_block bb; > > hash_table<histogram_hash> hashtable (10); > - > + > + gcc_checking_assert (!call_sums); > + call_sums = new ipa_profile_call_summaries (symtab); > + Unfortunately, this assertion is failing for most of the testcases in jit.dg, reducing the number of PASS results in jit.sum from 10473 down to 3254 in my builds. The jit code expects to be able to invoke the compiler code more than once within the same process, purging all state. It looks like this "call_sums" state needs deleting and resetting to NULL after the compiler has run (or else we'll likely get an ICE due to using old symtab/call summaries in subsequent in-process runs of the compiler). Candidate patch: https://gcc.gnu.org/ml/gcc-patches/2020-01/msg00807.html