[Bug ipa/59831] [4.9 Regression] ice in cgraph_speculative_call_info with -O3
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 16 20:00:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59831
--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Easy fix is the following:
Index: cgraph.c
===================================================================
--- cgraph.c (revision 206617)
+++ cgraph.c (working copy)
@@ -815,6 +815,7 @@ cgraph_set_call_stmt (struct cgraph_edge
e->call_stmt = new_stmt;
if (e->indirect_unknown_callee
+ && !e->speculative
&& (decl = gimple_call_fndecl (new_stmt)))
{
/* Constant propagation (and possibly also inlining?) can turn an
I am however not entirely happy about it. The devirtualization happens while
saving function body for inlining, so it is obviously a missed optimization
here: I assume that we never fold the call pre-IPA.
Also we should resolve speculation here, for that we however need to copy the
associated references...
More information about the Gcc-bugs
mailing list