[LLVMdev] Pointer Context Metadata (was: Parallel Loop Metadata)

Pekka Jääskeläinen pekka.jaaskelainen at tut.fi
Tue Feb 19 08:25:16 PST 2013


On 02/19/2013 05:51 PM, Hal Finkel wrote:
> Understood. If you have some time, it seems that there are several sub-tasks:
>
>   - Update the language reference

Document the additional optional iteration id argument to
llvm.mem.parallel_loop_access? I'll do this.

>   - Update the loop vectorizer (to update the metadata when it unrolls)
>   - Update the regular unroller

I'll update the pocl's work-item replicator first (of which output
is effectively the same as a fully unrolled parallel wiloop) to mark the
iterations with the iteration argument and see where it gets the WG
vectorization using the upstream BBVectorizer.

>   - Update the alias analysis (maybe this is sufficient for basic support in BBVectorize) - is your current code close enough for this?

The AA should be trivial. I can take a look at this too and try
to prepare a patch. This can be the first consumer for the optional
parallel_loop_access argument so it fits to the same patch.

The work-item AA implementation seems to be rather clean in pocl so it
should not require much additional work to generalize it to support
parallel loop iterations of any kind:

http://bazaar.launchpad.net/~pocl/pocl/trunk/view/head:/lib/llvmopencl/WorkItemAliasAnalysis.cc

I might try to upstream the OpenCL disjoint address space AA part
while I'm at it. It can use the OpenCL kernel metadata for checking it's
an OCL kernel that is being processed.

>   - Update the BB vectorizer to prefer pairings from different iterations

I'd leave this as a last task. It might find good enough pairings solely
with the additional AA, like you wrote. Let's see.

-- 
Pekka



More information about the llvm-dev mailing list