[LLVMdev] Parallel Loop Metadata

Nadav Rotem nrotem at apple.com
Tue Feb 12 13:59:30 PST 2013


On Feb 12, 2013, at 1:41 PM, Pekka Jääskeläinen <pekka.jaaskelainen at tut.fi> wrote:

> Hi,
> 
> Here it is, just synched against the latest LLVM trunk. Shall I commit this
> now?

LGTM. Please commit.  

> After committing, it could be worth some planning what is the best way to
> provide an easy to use mechanism to "refresh" the parallel loop mem
> access metadata (llvm.mem.parallel_loop_access) after optimizations that do not
> render the loop to a serial one. Some kind of helper function should be
> added to make it as easy as possible.
> 
> E.g., if the inliner inlines a call to a parallel loop's body, how can it
> easily and robustly refresh the parallel loop metadata to the inlined function?
> It needs to annotate only the new memory instructions in the loop with the
> parallel mem metadata, but not any of the old ones as there might
> have been a parallel-loop-unaware pass before that has added mem instructions
> without the metadata. Thus, we cannot just blindly refresh the whole parallel
> loop with the parallel mem access metadata after the pass finishes.
> 

Lets wait and see if this is a real problem before we change lots of passes in the compiler. 



> On 02/12/2013 08:12 PM, Nadav Rotem wrote:
>> 
>> On Feb 12, 2013, at 9:02 AM, Tobias Grosser <tobias at grosser.es> wrote:
>> 
>>> On 02/12/2013 05:54 PM, Nadav Rotem wrote:
>>>> 
>>>>> I have the feeling option 2) does not work for you, but I don't yet
>>>>> understand your reasons.
>>>> 
>>>> My inclination to prefer #1 is due to its simplicity. But, if #1 does not
>>>> work because it creates a correctness problems then #2 is the only option
>>>> that is left on the table.
>>> 
>>> Unfortunately. :-(
>>> 
>>> Does your reply mean you agree that option 2) should be taken?
>> 
>> Yes. I think that there is a consensus that this is the right approach.
>> 
>>> In case you do, how should we proceed? Should Pekka submit his patch for a
>>> final pre-commit review?
>> 
>> I think so. Pekka's patch from Jan 31st looks good to me.  The is bug in the
>> metadata handling in the vectorizer that we don't check that the load/store
>> annotation matches the loop metadata.
>> 
>>> 
>>> If option 2) is OK, Paul could also try to produce this metadate from his
>>> #pragma ivdep parser.
>>> 
>> 
>> That would be wonderful.
>> 
>> Thanks, Nadav
>> 
> 
> 
> -- 
> --Pekka
> 
> <llvm-3.3-parallel-loop-metadata.patch>





More information about the llvm-dev mailing list