[LLVMdev] LLVM Loop Vectorizer
nicholas at mxc.ca
Fri Oct 5 00:08:05 PDT 2012
Nadav Rotem wrote:
> 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
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.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev