[llvm-dev] RV: A Unified Region Vectorizer for LLVM - now on github

Simon Moll via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 21 00:35:50 PST 2016

Hi LLVM developers,

The Region Vectorizer (RV) is now available on github 

RV is a general-purpose vectorization framework for LLVM. It provides a 
unified interface to vectorize code regions, such as inner and outer 
loops, up to whole functions. Being a vectorization framework, RV is not 
another vectorization pass but rather enables users to vectorize IR 
directly from their own code.

I had a poster [1] and a lightning talk on RV at this year's US LLVM 
Developers' Meeting.

We are hoping to upstream (parts of) RV eventually. As a first step I 
propose to optimize the if-conversion phase in LLVM's LoopVectorizer. RV 
features a capable vectorization analysis that finds out which branches 
in a vectorized region can stay despite the surrounding loop being 
vectorized. Those uniform branches do not need to be folded giving an 
immediate benefit over the complete if conversion LoopVectorizer is 
doing right now.

We will submit patches that integrate a stripped-down version of RV into 
the LoopVectorizer to make minimal if conversion work.

Get in touch with me if you are interested in RV. We want to learn about 
new use cases and how RV could be improved. Finally, we welcome new 
developers to the project to work on new features or improve the 
existing codebase.


[1] "RV: A Unified Region Vectorizer for LLVM", Moll, S. (LLVM US DevMtg 
'16) (docs/poster_rv.pdf in the github repository)


Simon Moll
Researcher / PhD Student

Compiler Design Lab (Prof. Hack)
Saarland University, Computer Science
Building E1.3, Room 4.31

Tel. +49 (0)681 302-57521 : moll at cs.uni-saarland.de
Fax. +49 (0)681 302-3065  : http://compilers.cs.uni-saarland.de/people/moll

More information about the llvm-dev mailing list