This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix verify_propagated_use ICE during profiledbootstrap
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 13 Nov 2019 20:46:03 +0100
- Subject: Fix verify_propagated_use ICE during profiledbootstrap
Hi,
this patch fixes problem with ipa-cp ICEing while building gnatbind
during profiledbootstrap. The problem is that I was overzelaous about
ignoring callers with optimization disabled. Nothing useful can be
propagated across them but we still need to process calle after the
caller so we further propagate the info that we know nothing.
Bootstrapped/regtested x86_64-linux, committed.
* ipa-cp.c (ignore_edge_p): Do not check caller flags.
(propagate_constants_topo): Fix typo.
Index: ipa-cp.c
===================================================================
--- ipa-cp.c (revision 278155)
+++ ipa-cp.c (working copy)
@@ -816,9 +816,7 @@ 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, optimize)
|| !opt_for_fn (ultimate_target->decl, optimize)
- || !opt_for_fn (e->caller->decl, flag_ipa_cp)
|| !opt_for_fn (ultimate_target->decl, flag_ipa_cp));
}
@@ -3246,7 +3244,7 @@ propagate_constants_topo (class ipa_topo
if (opt_for_fn (v->decl, flag_ipa_cp)
&& opt_for_fn (v->decl, optimize))
push_node_to_stack (topo, v);
- /* When V is not optimized, we can not push it to stac, but
+ /* When V is not optimized, we can not push it to stack, but
still we need to set all its callees lattices to bottom. */
else
{