https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109231
--- Comment #31 from Jakub Jelinek <jakub at gcc dot gnu.org> --- If the important side-effect is allocation of some GC memory, then perhaps (assuming you also see just 5 initialize_cfun calls with 2xint, TFmode float, uint and bool) testing hack might be: --- a/gcc/tree-inline.cc +++ b/gcc/tree-inline.cc @@ -2787,6 +2787,8 @@ initialize_cfun (tree new_fndecl, tree callee_fndecl, profile_count count) /* Get clean struct function. */ push_struct_function (new_fndecl, true); targetm.target_option.relayout_function (new_fndecl); + if (INTEGRAL_TYPE_P (TREE_TYPE (DECL_RESULT (new_fndecl)))) + gen_raw_REG (GET_MODE (TYPE_MODE (DECL_RESULT (new_fndecl))), 8); /* We will rebuild these, so just sanity check that they are empty. */ gcc_assert (VALUE_HISTOGRAMS (cfun) == NULL); If that would help, then it is just bad luck and bug somewhere else than here.