[llvm-dev] difference between polly stripmine, vector and unroll flags

Michael Kruse via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 17 00:05:57 PDT 2018


2018-07-16 11:32 GMT-07:00 hameeza ahmed <hahmed2305 at gmail.com>:
> Hello I m using following polly flags,
>
> clang -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine

This prepares instructions into vector-sized chunks
(-polly-prevect-width, 4 by default), but does not generate vector
instructions itself. The LoopVectorizer can generate vector
instructions from it.

> clang -O3 -mllvm -polly -mllvm -polly-vectorizer=polly

Like -polly-vectorizer=stripmine, but generates vector instructions itself.

> clang -O3 -mllvm -polly -mllvm -force-vector-interleave=32

This is a LoopVectorizer option. It does not vectorize, but interleave
(a special kind of unrolling).

Michael


More information about the llvm-dev mailing list