使用gcc-4.7编译cilk时出错

时间:2012-06-20 16:11:36

标签: gcc cilk cilk-plus

我收到以下错误

main.c:107:2: internal compiler error: in extract_for_fields, at cilk-spawn.c:1857
}

并且相关的行是:

cilk_for (index = 0; table_name[index]!=NULL; ++index )
{
      /* some work*/
}

Line 107对应于cilk_for循环的结束括号。

感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

尝试构建时不进行优化(省略任何优化标记,或明确使用-O0)。

如果有帮助,您可以尝试查看-O1(某些优化)是否有效,然后是-O2,依此类推。 如果你很幸运,你可以找出导致问题的优化方法,然后简单地用一些-fno-foo标志禁用该优化。

答案 1 :(得分:0)

我上面做的不是有效的cilk_for循环,因为cilk_for循环必须测试控制变量。还必须能够预测循环运行的时间,在这种情况下,这是不可能的。所以正确的版本将是

int count=0;
while(table_name[count]!=NULL)
    count++;
cilk_for (index = 0; index!=count; ++index )
{
      /* some work*/
}