[LLVMdev] [PATCH] parallel loop metadata

Pekka Jääskeläinen pekka.jaaskelainen at tut.fi
Tue Jan 29 11:42:27 PST 2013

On 01/29/2013 08:22 PM, Dan Gohman wrote:
> "Ignore assumed dependencies" is shaky semantics. I haven't seen anything
> explicitly spell out which dependencies a compiler is guaranteed to detect.
> How  can users use such a directive safely in a loop which has dependencies?
> I understand that this is what icc's documentation says, but I'm wondering
> if there's a real motivation for this design other than blind compatibility.

I agree. I was puzzled by it myself until I ended up concluding that
if the set of required analysis is not defined it can be an empty set,
thus equivalent to "no dep checking at all needed":


Maybe the safe thing here is to rename it back to the honest
"llvm.loop.parallel" or similar and we can add a separate one for
the assumed_dep later on. This one would support the truly parallel
loops (at least OpenMP for and OpenCL WIloops) where no compiler
checking at all can be assumed by the programmer.

Any objections? Paul Redmond?


More information about the llvm-dev mailing list