https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83532

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #1)
> Does this help? Seems we omit adjustment when producing partial function
> clone.
> 
> Index: tree-inline.c
> ===================================================================
> --- tree-inline.c       (revision 256324)
> +++ tree-inline.c       (working copy)
> @@ -2683,7 +2683,6 @@
>    profile_count den = ENTRY_BLOCK_PTR_FOR_FN (src_cfun)->count;
>    profile_count num = entry_block_map->count;
>  
> -  profile_count::adjust_for_ipa_scaling (&num, &den);
>  
>    cfun_to_copy = id->src_cfun = DECL_STRUCT_FUNCTION (callee_fndecl);
>  
> @@ -2707,6 +2706,8 @@
>        ENTRY_BLOCK_PTR_FOR_FN (cfun)->count = den;
>      }
>  
> +  profile_count::adjust_for_ipa_scaling (&num, &den);
> +
>    /* Must have a CFG here at this point.  */
>    gcc_assert (ENTRY_BLOCK_PTR_FOR_FN
>               (DECL_STRUCT_FUNCTION (callee_fndecl)));

Let me test it.

Reply via email to