https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78306
--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 14 Nov 2016, iblue at gmx dot net wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78306 > > --- Comment #2 from Markus Fenske <iblue at gmx dot net> --- > Thanks for the suggested workaround. Moving all the always_inline functions > into a wrapper was no option, because it's not just memset but my code relies > on avx intrinsics and would be dead slow if I would need a function all for > every instruction. > > So I just removed the cilk sections in ipa-inline-analysis.c and ipa-inline.c > and compiled my code with gcc-trunk. It compiles and produces the same results > as with icc and clang. > > I'm not an expert in gcc code, but I would propose this patch to solve the > issue: > > Index: gcc/ipa-inline-analysis.c > =================================================================== > --- gcc/ipa-inline-analysis.c (revision 242386) > +++ gcc/ipa-inline-analysis.c (working copy) > @@ -1507,9 +1507,6 @@ > e->inline_failed = CIF_BODY_NOT_AVAILABLE; > else if (callee->local.redefined_extern_inline) > e->inline_failed = CIF_REDEFINED_EXTERN_INLINE; > - else if (cfun && fn_contains_cilk_spawn_p (cfun)) > - /* We can't inline if the function is spawing a function. */ > - e->inline_failed = CIF_CILK_SPAWN; > else > e->inline_failed = CIF_FUNCTION_NOT_CONSIDERED; > gcc_checking_assert (!e->call_stmt_cannot_inline_p > Index: gcc/ipa-inline.c > =================================================================== > --- gcc/ipa-inline.c (revision 242386) > +++ gcc/ipa-inline.c (working copy) > @@ -368,11 +368,6 @@ > e->inline_failed = CIF_FUNCTION_NOT_INLINABLE; > inlinable = false; > } > - else if (inline_summaries->get (caller)->contains_cilk_spawn) > - { > - e->inline_failed = CIF_CILK_SPAWN; > - inlinable = false; > - } > /* Don't inline a function with mismatched sanitization attributes. */ > else if (!sanitize_attrs_match_for_inline_p (caller->decl, callee->decl)) > { Bootstrapped and tested on x86_64-unknown-linux-gnu (I expect that ->contains_cilk_spawn might be completely dead). Richard.