[Bug middle-end/58723] [4.9 Regression] ICE in lto_output_edge, at lto-cgraph.c:300 for OpenMP's simd reduction

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Nov 26 22:07:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58723

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #6)
> (In reply to Richard Biener from comment #5)
> > Created attachment 31299 [details]
> > Patch fixing the testcase (but otherwise untested - we don't have too many
> > internal fn testcases).
> Doesn't work for me.

If one dumps the bb, one finds a call to GOMP_SIMD_VF.

Using the following patch on top of yours fixes the issue for the reduced test
case and for the compilation to the *.o files in the real-world code:

--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -4066,5 +4070,5 @@ expand_call_inline (basic_block bb, gimple stmt,
copy_body_data *id)

   /* From here on, we're only interested in CALL_EXPRs.  */
-  if (gimple_code (stmt) != GIMPLE_CALL)
+  if (gimple_code (stmt) != GIMPLE_CALL || gimple_call_internal_p (stmt))
     goto egress;

 * * *

Unfortunately, the lto1 phase still fails for the big code. For that one, I
get:

xpboolean.cc:3744:8: internal compiler error: in expand_GOMP_SIMD_VF, at
internal-fn.c:137
0x7b48b7 expand_GOMP_SIMD_VF
        ../../gcc/internal-fn.c:137
0x5fe497 expand_call_stmt
        ../../gcc/cfgexpand.c:2164
0x5fe497 expand_gimple_stmt_1
        ../../gcc/cfgexpand.c:3143
0x5fe497 expand_gimple_stmt
        ../../gcc/cfgexpand.c:3295



More information about the Gcc-bugs mailing list