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]

Work around ICE in PR 65648


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
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


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