stlemme / rv

RV: A Unified Region Vectorizer for LLVM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

                    The Region Vectorizer

Compiler Design Lab / Saarland University / Saarland Informatics Campus


The Region Vectorizer (RV) is a general-purpose vectorization framework for LLVM.
RV provides a unified interface to vectorize code regions, such as inner and outer loops, up to whole functions.
We had a poster on RV at the 2016 US LLVM Developers' Meeting (docs/poster_rv.pdf).
RV is largely based on the Whole-Function Vectorizer by Ralf Karrenberg (http://www.cdl.uni-saarland.de/projects/wfv/).

For any questions, please get in touch with Simon Moll (moll@cs.uni-saarland.de).


-- Buildling libRV --
libRV uses cmake for its build system.
cmake should be configured to build in the libRV root folder.
The current version of libRV requires LLVM 3.8.
Products:
- liRV.so // main library
- bin/rvTool // command line vectorizer


-- Testing libRV --
To run the entire test suite enter the folder test/ and run ./test_rv.py.
More details on testing can be found in test/README


-- Getting started with the API --
Users of RV should include its main header file include/rv/rv.h and supporting headers in include/rv.
The command line tester (tool/rvTool.cpp) is a good starting point to learn how to use RVs API.


-- Source structure --
include/ - header files
rvlibsrc/ - SIMD library sources
src/ - source files
test/ - tests
tool/ - sources of rvTool



The Region Vectorizer is distributed under the University of Illinois Open Source
License. See LICENSE.TXT for details.

About

RV: A Unified Region Vectorizer for LLVM

License:Other


Languages

Language:C++ 49.3%Language:C 48.7%Language:CMake 0.7%Language:LLVM 0.6%Language:Python 0.6%Language:Shell 0.0%