Building and Installing Polly
+You can build Polly with cmake and your preferred geneator (e.g. Ninja, make, Visual Studio, etc.). -Automatic
- -There is a script available to automatically checkout, -update, build, and test Polly. This script contains all the commands that are -subsequently described on this webpage. The automatic installation consists -of four simple steps: +Get the code
-mkdir polly && cd polly -wget https://polly.llvm.org/polly.sh -chmod +x polly.sh -./polly.sh +git clone https://github.com/llvm/llvm-project.git-
Manual
-Get the code
+You can also get a shallow clone by running:-git clone https://github.com/llvm/llvm-project.git llvm_git +git clone --depth 1 https://github.com/llvm/llvm-project.git+
Build Polly
-mkdir llvm_build && cd llvm_build -cmake -DLLVM_ENABLE_PROJECTS='polly;clang' ../llvm_git/llvm && make +mkdir build && cd build +cmake '-DLLVM_ENABLE_PROJECTS=clang;polly' ../llvm +cmake --build .-
Test Polly
+You can also pass arguments to cmake to specify a particular generator (e.g.-G Ninja
) or the build type (-DCMAKE_BUILD_TYPE=Release
).
+
+If you just want to play around with Polly, it is recommended to do a Release+Assert build by passing
+-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON
.
+
+Test Polly
-make check-polly+To test Polly, you can run -
Building Polly Without LLVM
-It is also possible to build Polly without -also building LLVM. All you need is an installed version of LLVM or a previous -build. To configure Polly to use a pre-built LLVM, set the --DCMAKE_PREFIX_PATH
option:
+cmake --build . --target check-polly-
cmake -DCMAKE_PREFIX_PATH=${LLVM_PREFIX}/lib/cmake/llvm ../llvm_git/polly+
Using Polly
-To run unittests, however, you need to have the LLVM source directory around. -Polly will use thellvm-config
of the LLVM you're building against
-to guess the location of the source directory. You may override autodetected
-location by setting the -DLLVM_SOURCE_ROOT
option.
+Suppose that you want to compile a program hello.c using Polly.
+
+To compile it with Polly (in the build folder), you can run:
+
++bin/clang -O3 -mllvm -polly hello.c +
Troubleshooting
-If you get an error in one of the python files, your system probably uses python3
-as default python interpreter. This is the case, for instance, under Arch Linux.
-To solve this issue, run cmake
again, but with the added argument:
--DPYTHON_EXECUTABLE=/usr/bin/python2
(replace /usr/bin/python2
-with the location of the python2 interpreter under your system).
+
+ If you run out of memory when building with Ninja, try lowering the concurrency of Ninja (e.g. ninja -j 2
).
+ More tips and tricks to building and using LLVM can be found here.
+
cmake -DCMAKE_PREFIX_PATH=${ISL_INSTALL} -DPYTHON_EXECUTABLE=/usr/bin/python2 ${LLVM_SRC}+
+For more information on getting started with Polly and LLVM in general, see LLVM's getting started docs. +