public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Fix verify_propagated_use ICE during profiledbootstrap
@ 2019-11-13 19:47 Jan Hubicka
  0 siblings, 0 replies; only message in thread
From: Jan Hubicka @ 2019-11-13 19:47 UTC (permalink / raw)
  To: gcc-patches

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
 	      {

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-11-13 19:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-13 19:47 Fix verify_propagated_use ICE during profiledbootstrap Jan Hubicka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).