Closed bcc32 closed 7 years ago
My current theory is that, at optimization level 0, Loop2Cilk fails to handle these loops. As a result, these loops are getting compiled such that there is a race on the loop iteration variables. These problems seem to disappear if you use -O1 instead of -O0 for the DEBUG build.
I cannot reproduce this issue on master.
I could, using make -B DEBUG=1
.
Fixed on master
tarball
My group has the following snippet in our quadtree implementation (
quadtree.c:202-210
):The following output is produced, compiling with
make DEBUG=1
and running oncqrun8
:Compilation:
Execution:
This problem does not occur if the body of the outer
cilk_for
loop (i.e., the entirety of the innercilk_for
loop) is extracted into a new function whose declaration is annotated with__attribute__((noinline))
.