diff mbox

Work around ICE in PR 65648

Message ID 20150403202416.GE37152@kam.mff.cuni.cz
State New
Headers show

Commit Message

Jan Hubicka April 3, 2015, 8:24 p.m. UTC
Hi,
the dealII compilation ICEs on check that verifies that projected size match
the size after inlining.  This check suffers from roundoff errors in corner
cases and I believe it is what triggers here.
Given that I have a reorg of this code to sreals scheduled for next stage1,
I think we can just disable the sanity check in GCC 5.  It is non-critical
thoguh very useful to fix varoius bug that causes propagation to diverge.

Will commit it shortly as obvious.

	PR ipa/65648
	* ipa-inline-transform.c (inline_call): Skip sanity check to work
	around the ICE

Comments

Gerald Pfeifer April 5, 2015, 4:28 p.m. UTC | #1
On Fri, 3 Apr 2015, Jan Hubicka wrote:
> -#ifdef ENABLE_CHECKING
> +  /* This is used only for assert bellow.  */
> +#if 0

"below" (instead of "bellow")

Gerald
diff mbox

Patch

Index: ipa-inline-transform.c
===================================================================
--- ipa-inline-transform.c	(revision 221859)
+++ ipa-inline-transform.c	(working copy)
@@ -304,7 +304,8 @@  inline_call (struct cgraph_edge *e, bool
   struct cgraph_node *callee = e->callee->ultimate_alias_target ();
   bool new_edges_found = false;
 
-#ifdef ENABLE_CHECKING
+  /* This is used only for assert bellow.  */
+#if 0
   int estimated_growth = estimate_edge_growth (e);
   bool predicated = inline_edge_summary (e)->predicate != NULL;
 #endif
@@ -375,7 +376,10 @@  inline_call (struct cgraph_edge *e, bool
 	to->calls_comdat_local = false;
     }
 
-#ifdef ENABLE_CHECKING
+  /* FIXME: This assert suffers from roundoff errors, disable it for GCC 5
+     and revisit it after conversion to sreals in GCC 6.
+     See PR 65654.  */
+#if 0
   /* Verify that estimated growth match real growth.  Allow off-by-one
      error due to INLINE_SIZE_SCALE roudoff errors.  */
   gcc_assert (!update_overall_summary || !overall_size || new_edges_found