[LLVMdev] LLVM Loop Vectorizer

Nick Lewycky nicholas at mxc.ca
Fri Oct 5 00:08:05 PDT 2012

Nadav Rotem wrote:
> Hi,
> We are starting to work on an LLVM loop vectorizer. There's number of different projects that already vectorize LLVM IR. For example Hal's BB-Vectorizer, Intel's OpenCL Vectorizer, Polly, ISPC, AnySL, just to name a few. I think that it would be great if we could collaborate on the areas that are shared between the different projects. I think that refactoring LLVM in away that would expose target information to IR-level transformations would be a good way to start. Vectorizers, as well as other IR-level transformations, require target-specific information, such as the cost of different instruction or the availability of certain features. Currently, llvm-based vectorizers do not make use of this information, or just hard-code target information. A loop vectorizer would need target information. After we have some basic target information infrastructure in place we can start discussing the vectorizer itself.
> I think that the first step would be to expose Target Lowering Interface (TLI) to OPT's IR-level passes.

I absolutely think that we should have something like TargetData (now 
DataLayout) but for the vector types and operations. However, I'm not 
familiar with "Target Lowering Interface". Could you explain?

  Currently TLI is only available in LLC. I suggest that we merge LLC 
and OPT into a single tool that will drive both IR-level passes and the 

This really shouldn't be necessary. Notably, it is still possible today 
to build a Module and optimize it without having decided what target 
you're targeting.


  LLC and OPT can remain as wrappers around the new tool. Please let me 
know if you can think of a good name for the new tool. I was thinking 
that "llvm-cli" may be a good name (cli = command line interface). OPT 
and LLC are only used by LLVM developers, so the impact of this change 
on the user community would be small.
> Thanks,
> Nadav
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list