[LLVMdev] LLVM Loop Vectorizer

Hal Finkel hfinkel at anl.gov
Thu Oct 4 23:28:38 PDT 2012


----- Original Message -----
> From: "Nadav Rotem" <nrotem at apple.com>
> To: "llvmdev at cs.uiuc.edu Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Friday, October 5, 2012 1:14:47 AM
> Subject: [LLVMdev] LLVM Loop Vectorizer
> 
> 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.

Great!

> 
> I think that the first step would be to expose Target Lowering
> Interface (TLI) to OPT's IR-level passes. 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 codegen.

Having made this suggestion in the past, I am, of course, fully supportive! This is something that we definitely need to do.

> 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.

We could just call it llvmc (for LLVM compiler). Alternatively, we could add OPTs options to LLC, and add an option to OPT to produce IR output after all of the IR-level passes have completed to emulate the current OPT functionality.

Thanks again,
Hal

> 
> Thanks,
> Nadav
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-dev mailing list