[LLVMdev] [PATCH] parallel loop metadata
hfinkel at anl.gov
Tue Jan 29 12:47:22 PST 2013
----- Original Message -----
> From: "Pekka Jääskeläinen" <pekka.jaaskelainen at tut.fi>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>, "Dan Gohman" <dan433584 at gmail.com>
> Sent: Tuesday, January 29, 2013 2:37:44 PM
> Subject: Re: [PATCH] parallel loop metadata
> On 01/29/2013 10:17 PM, Hal Finkel wrote:
> > Will parallel always be synonymous with
> > no_interiteration_dependencies? I'm
> > sightly worried that 'parallel' seems too much like a directive,
> > and we may
> > want it to mean something else in the future.
> I think the semantics of a "parallel loop" is:
> If my loop, I hereby state as "parallel", has loop-carried
> I have made a programming mistake and you, the compiler, are free
> punish me by producing undefined results.
> We can add other metadata later on. E.g. "ivdep":
> My loop might have some dependencies I know you know about, and
> some dependencies which are impossible (for you!) to analyze. The
> ones you can ignore as I know those are not real dependencies, but
> please do not ignore those I know you know about :)
Unless there is also some way to tell the compiler about those dependencies that I know about, this this is useless. Based on my experience, when a user says "ivdep" they are asserting no dependencies (known or unknown).
> I think the actual "strong" parallel loop semantics is more
> as it gives the most freedom and is not even a bit vague.
More information about the llvm-dev