This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Work around --enable-checking profiledbootstrap issue
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 16 Jan 2015 04:06:41 +0100
- Subject: Work around --enable-checking profiledbootstrap issue
- Authentication-results: sourceware.org; auth=none
Hi,
this patch fixes ICE during profiledbootstrap. The underlying problem is somewhat hard
to fix (and not too important), so I will pospone it for next stage1.
Honza
Index: ChangeLog
===================================================================
--- ChangeLog (revision 219700)
+++ ChangeLog (working copy)
@@ -1,3 +1,8 @@
+2015-01-15 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-inline.c (inline_small_functions): Work around hints
+ cache issue.
+
2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
PR target/59710
Index: ipa-inline.c
===================================================================
--- ipa-inline.c (revision 219700)
+++ ipa-inline.c (working copy)
@@ -1655,7 +1655,18 @@ inline_small_functions (void)
reset_edge_growth_cache (edge);
gcc_assert (old_size_est == estimate_edge_size (edge));
gcc_assert (old_time_est == estimate_edge_time (edge));
- gcc_assert (old_hints_est == estimate_edge_hints (edge));
+ /* FIXME:
+
+ gcc_assert (old_hints_est == estimate_edge_hints (edge));
+
+ fails with profile feedback because some hints depends on
+ maybe_hot_edge_p predicate and because callee gets inlined to other
+ calls, the edge may become cold.
+ This ought to be fixed by computing relative probabilities
+ for given invocation but that will be better done once whole
+ code is converted to sreals. Disable for now and revert to "wrong"
+ value so enable/disable checking paths agree. */
+ edge_growth_cache[edge->uid].hints = old_hints_est + 1;
/* When updating the edge costs, we only decrease badness in the keys.
Increases of badness are handled lazilly; when we see key with out