<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <title>Polly - Getting Started</title>
  <link type="text/css" rel="stylesheet" href="menu.css" />
  <link type="text/css" rel="stylesheet" href="content.css" />
</head>
<body>

<div id="box">
<!--#include virtual="menu.html.incl"-->

<div id="content">

<h1>Getting Started: Building and Installing Polly</h1>

<h2> Automatic </h2>

There is a <a href="polly.sh">script</a> 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:

<pre>
mkdir polly &amp;&amp; cd polly
wget http://polly.llvm.org/polly.sh
chmod +x polly.sh
./polly.sh
</pre>

<h2> Manual </h2>
<h3 id="source"> Get the code </h3>

The Polly source code is available in the LLVM SVN repository as well as through
an official git mirror. It is added to the <em>tools</em>
directory of the llvm sources.
<b>Polly and LLVM need to be checked out at the same time. Checkouts
   from different dates may not work!</b>
<h4>Set the directory layout:</h4>
<pre>
export BASE=`pwd`
export LLVM_SRC=${BASE}/llvm
export POLLY_SRC=${LLVM_SRC}/tools/polly

# Also build the matching clang-version (optional)
export CLANG_SRC=${LLVM_SRC}/tools/clang
</pre>

<h4>SVN</h4>
<pre>
svn checkout http://llvm.org/svn/llvm-project/llvm/trunk ${LLVM_SRC}
svn checkout http://llvm.org/svn/llvm-project/polly/trunk ${POLLY_SRC}

# Also build the matching clang-version (optional)
svn checkout http://llvm.org/svn/llvm-project/cfe/trunk ${CLANG_SRC}
</pre>
<h4>GIT</h4>
<pre>
git clone http://llvm.org/git/llvm.git ${LLVM_SRC}
git clone http://llvm.org/git/polly.git ${POLLY_SRC}

# Also build the matching clang-version (optional)
git clone http://llvm.org/git/clang.git ${CLANG_SRC}
</pre>
<h3 id="prerequisites"> Prerequisites </h3>
<ul>
<li>libgmp</li>
<li>CLooG/isl</li>
</ul>

<h4> libgmp </h4>
Install libgmp (library + developer package) through the package management
system of your operating system.

<h4> CLooG/isl</h4>

Polly is tested with a fixed version of <a href="http://www.cloog.org">CLooG</a>
and isl. To obtain the source code of CLooG (including isl) use
checkout_cloog.sh as available in ${POLLY_SRC}/utils/checkout_cloog.sh.

<h4>Set the directory layout:</h4>
<pre>
export CLOOG_SRC=${BASE}/cloog_src
export CLOOG_INSTALL=${BASE}/cloog_install
</pre>

<h4> First installation</h4>
<pre>
${POLLY_SRC}/utils/checkout_cloog.sh ${CLOOG_SRC}
cd ${CLOOG_SRC}
./configure --prefix=${CLOOG_INSTALL}
make
make install
cd ${BASE}
</pre>

<h4> Update the installation</h4>

Updating CLooG may become necessary, if Polly uses a feature
only available in a recent version of CLooG.
<pre>
${POLLY_SRC}/utils/checkout_cloog.sh ${CLOOG_SRC}
cd ${CLOOG_SRC}
make
make install
cd ${BASE}
</pre>

<h3 id="build">Build Polly</h3>

To build Polly you can either use the autoconf or the cmake build system. At the
moment only the autoconf build system allows to run the llvm test-suite and only
the cmake build system allows to run 'make check-polly'.

<h4>Set the directory layout:</h4>
<pre>
export LLVM_BUILD=${BASE}/llvm_build
mkdir ${LLVM_BUILD}
cd ${LLVM_BUILD}
</pre>

<h4>CMake</h4>

<pre>
cmake -DCMAKE_PREFIX_PATH=${CLOOG_INSTALL} ${LLVM_SRC}
make
</pre>

<h4> Autoconf </h4>

<pre>
${LLVM_SRC}/configure --with-cloog=${CLOOG_INSTALL} --with-isl=${CLOOG_INSTALL}
make
</pre>

<h3> Test Polly</h3>

<p>To check if Polly works correctly you can run <em>make check-polly</em> for the
cmake build or <em>make check-polly -C tools/polly/test/</em> for the autoconf
build.

<p>If you get something like <em>"... libisl.so.9: cannot open shared object file .."</em>,
it is because you installed cloog to a non-standard path, and libisl/libcloog
could not be found. To solve this issue, you need to append the path of parent
directory of libisl/libcloog, i.e. ${CLOOG_INSTALL}/lib, to LD_LIBRARY_PATH by:

<pre>export LD_LIBRARY_PATH=${CLOOG_INSTALL}/lib:$LD_LIBRARY_PATH</pre>

<p>Also try the above command if you get errors such as:
<code>undefined symbol: isl_ctx_get_max_operations</code>

<p>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 <code>cmake</code> again, but with the added argument:
<code>-DPYTHON_EXECUTABLE=/usr/bin/python2</code> (replace <code>/usr/bin/python2</code>
with the location of the python2 interpreter under your system).

<pre>cmake -DCMAKE_PREFIX_PATH=${CLOOG_INSTALL} -DPYTHON_EXECUTABLE=/usr/bin/python2 ${LLVM_SRC}</pre>

<h2> Optional Features </h2>

<h3> Pocc </h3>

<p>Polly can use <a href="http://www.cse.ohio-state.edu/~pouchet/software/pocc">
PoCC</a> as an external optimizer. PoCC is a research project that provides
an integrated version of <a href="http://pluto-compiler.sf.net">Pluto</a>, an
advanced data-locality and tileability optimizer. Polly includes internally
already a similar optimizer, such that in general PoCC is not needed. It is
only recommended for people who want to compare against a different
optimizer.</a>
<br/>
To use it install PoCC 1.0-rc3.1 (the one with Polly support) and add it to your PATH. 

<pre>
wget <a
href="http://www.cse.ohio-state.edu/~pouchet/software/pocc/download/pocc-1.0-rc3.1-full.tar.gz">http://www.cse.ohio-state.edu/~pouchet/software/pocc/download/pocc-1.0-rc3.1-full.tar.gz</a>
tar xzf pocc-1.0-rc3.1-full.tar.gz
cd pocc-1.0-rc3.1
./install.sh
export PATH=$PATH:`pwd`/bin
</pre>

You also need to install scoplib-0.2.0 and provide its location to
Polly's cmake or configure call.

<pre>
wget <a
href="http://www.cse.ohio-state.edu/~pouchet/software/pocc/download/modules/scoplib-0.2.0.tar.gz"
>http://www.cse.ohio-state.edu/~pouchet/software/pocc/download/modules/scoplib-0.2.0.tar.gz</a>
tar xzf  scoplib-0.2.0.tar.gz
cd scoplib-0.2.0
./configure --enable-mp-version --prefix=/path/to/scoplib/installation
make && make install
</pre>
</div>
</div>

</body>
</html>
