On June 17, 2019 10:36:58 PM GMT+02:00, Martin Jambor <mjam...@suse.cz> 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. > >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?
Ok. Richard. >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)); > } >