Fix verify_propagated_use ICE during profiledbootstrap
diff mbox series

Message ID 20191113194603.ze2wxb2vcx7gej3k@kam.mff.cuni.cz
State New
Headers show
Series
  • Fix verify_propagated_use ICE during profiledbootstrap
Related show

Commit Message

Jan Hubicka Nov. 13, 2019, 7:46 p.m. UTC
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.

Patch
diff mbox series

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
 	      {