On 6/17/19 10:36 PM, Martin Jambor wrote:
> Hi,
> 
> r272115 introduced IPA-CP hook to ignore some edges in order to break
> useless SCCs, but the condition in the new hook was a bit too lenient.

Oh, sorry for the breakage.
Thank you Martin for the patch.

Martin

> 
> If we want to break SCCs in which contains some nodes has IPA-CP
> disabled, we must do it at the incoming edges, not at the outgoing, at
> least without making sure that we propagate that these calls have to
> mark callee's lattices as containing variable stuff.
> 
> But breaking SCCs only at the edges which are easier to handle
> is... well.. easier, and so the following patch does that.  The patch
> has restored LTO bootstrap with Ada, C and C++, I am now running LTO
> bootstrap and testing with all languages, OK if it passes?
> 
> Thanks,
> 
> Martin
> 
> 
> 2019-06-17  Martin Jambor  <mjam...@suse.cz>
> 
>       PR ipa/90889
>       * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
>       caller does not have flag_ipa_cp set.
> ---
>  gcc/ipa-cp.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
> index a0f6f23829b..d3a88756a91 100644
> --- a/gcc/ipa-cp.c
> +++ b/gcc/ipa-cp.c
> @@ -817,7 +817,6 @@ ignore_edge_p (cgraph_edge *e)
>      = e->callee->function_or_virtual_thunk_symbol (&avail, e->caller);
>  
>    return (avail <= AVAIL_INTERPOSABLE
> -       || !opt_for_fn (e->caller->decl, flag_ipa_cp)
>         || !opt_for_fn (ultimate_target->decl, flag_ipa_cp));
>  }
>  
> 

Reply via email to