Hi LLVM developers,
The Region Vectorizer (RV) is now available on github https://github.com/simoll/rv
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  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.
 "RV: A Unified Region Vectorizer for LLVM", Moll, S. (LLVM US DevMtg '16) (docs/poster_rv.pdf in the github repository)