[LLVMdev] Auto-Vectorization in LLVM

ether zhhb etherzhhb at gmail.com
Fri May 7 20:31:56 PDT 2010


hi,

On Thu, May 6, 2010 at 4:40 PM, Renato Golin <rengolin at systemcall.org>wrote:

> On 6 May 2010 05:34, Chris Lattner <clattner at apple.com> wrote:
> > On May 5, 2010, at 1:01 PM, Rajkishore Barik wrote:
> >> I would also like to know if there is any progress/future plans to
> >> include this
> >> in the main trunk?
> >
> > Unfortunately, nothing came of this project AFAIK, maybe Devang knows
> more.
>
> I looked for it and couldn't find any, too. I found some
> alias/dependency analysis inside loops, but nothing actively trying to
> merge instructions.
>
> WRT progress/plans, there is the Poly project
> (http://wiki.llvm.org/Polyhedral_optimization_framework) that is an
> external representation to LLVM and could make much easier to map
> dependencies and leave the road open for auto-vec, but again, nothing
> on that direction has been done, too.

Yep, we are only translate LLVM IR to Polyhedral Represent (or Polly IR) and
translate them back to LLVM IR at this moment.

After this is stage, we export the Polly IRs with openscop library (INRIA
will public this in soon), and do something like auto-vectorization on
(exported) Polly IR, then import them into llvm and translate them back to
LLVM IR.

But as i had discuss with tobi, we may not generate the "vectorized" or
"parallelized " LLVM IR directly from Polly IR, instead, we may annotate the
information such as "this loop is a parallel loop", or "dependence distance
of this loop is 8" to LLVM IR in the form of metadata. Or, we will provide a
analysis pass to hold such information.

Then we can write passes that use these metadata (or analysis pass) to
transform LLVM IR to do vectorization and parallelization for SIMD
architecture, OpenMP,  OpenCL and so on.

Any comment or suggestion is welcome :)

best regards
ether

Tobias and Ether should know
> more on that.
>
> cheers,
> --renato
>
> http://systemcall.org/
>
> Reclaim your digital rights, eliminate DRM, learn more at
> http://www.defectivebydesign.org/what_is_drm
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100508/9fbc9291/attachment.html>


More information about the llvm-dev mailing list