- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
For some reason, whenever I have a spawn and sync inside a cilk_for it seems as though the spawn does not get recognized. I end up getting a compile time error of Expected _Cilk_spawn before _Cilk_sync. As an example consider the following (overly simple) program:
void foo(){
cout << "foo";
}
void bar(){
cout << "bar";
}
void baz(){
cout << "baz";
}
int main(){
cilk_for(int i-0; i<10; i++){
cilk_spawn foo();
bar();
cilk_sync;
baz();
}
}
If I try to compile this I get the above mentioned error. Does anyone have any idea as to why this might be happening and/or how I can solve it. (If I move the spawn and sync into a separate helper method it solves the problem, but unfortunately in my real use case it would mean passing a lot of variables by pointer.) I am using g++ 4.8.1 with cilkplus.
Thanks!
- Meir
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's a bug in the gcc implementation. icc compiled it without complaint (after I fixed the "int i-0" typo and added the obvious includes/using). I'll try to get this reported to the code maintainer.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, this looks like a bug in GCC's Cilkplus branch. Unfortunately there are no plans to support separate branches anymnore since now we are integrating Cilk_for support into the GCC trunk (it will be version 5.0) thus all Cilk+ features will be there together. Of course, we will make sure that given test works in the trunk after we finish integration
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page