[LLVMdev] Enabling vectorization with LLVM 3.3 for a DSL emitting LLVM IR

Tobias Grosser tobias at grosser.es
Thu Jul 4 19:11:26 PDT 2013

On 07/04/2013 01:39 PM, St├ęphane Letz wrote:
> Hi,
> Our DSL can generate C or directly generate LLVM IR. With LLVM 3.3, we can vectorize the C produced code using clang with -O3, or clang with -O1 then opt -O3 -vectorize-loops. But the same program generating LLVM IR version cannot be vectorized with opt -O3 -vectorize-loops. So our guess is that our generated LLVM IR lacks some informations that are needed by the vectorization passes to correctly work.
> Any idea of what could be lacking?

Without any knowledge about the code guessing is hard. You may miss the 
'noalias' keyword or nsw/nuw flags, but there are many possibilities.

If you add '-debug' to opt you may get some hints. Also, if you have a 
small test case, posting the LLVM-IR may help.


More information about the llvm-dev mailing list