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

--- Comment #12 from Jan Hubicka <hubicka at ucw dot cz> ---
> > Honza, any ideas on this?
> The comment on assert says
>  /* In LTO mode we may have speculative edges set.  */
>  gcc_assert (in_lto_p || size_info->size == size_info->self_size);            
>  
> Which seems expected because the speculative edges are not accounted by
> self_size. So perhaps we simply want to track if there is speculative
> edge and disable the sanity check inthat case.
https://gcc.gnu.org/legacy-ml/gcc-patches/2018-12/msg01650.html
is the patch that intoduced the comment and it seems it does right
thing.  size_inf->self_size is normally computed from original function
body and if speculation is added it is not udpated, while
size_info->size contains size adjusted by all speculations and inline
decision, so in presence of speculatie edges we can not expect both to
match.

I will check tomorrow if it makes code to compile.

Honza
> 
> Honza

Reply via email to