This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
 	      {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]