[LLVMdev] [PATCH] parallel loop metadata

Hal Finkel 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
>    dependencies,
>    I have made a programming mistake and you, the compiler, are free
>    to
>    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
>    also
>    some dependencies which are impossible (for you!) to analyze. The
>    latter
>    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).

 -Hal

> 
> I think the actual "strong" parallel loop semantics is more
> interesting
> as it gives the most freedom and is not even a bit vague.
> 
> --
> --Pekka
> 
> 




More information about the llvm-dev mailing list