llvm-project/polly/www/get_started.html

160 lines
4.3 KiB
HTML
Raw Normal View History

<!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>
<!--#include virtual="menu.html.incl"-->
<div id="content">
<h1>Getting Started: Building and Installing Polly</h1>
<h2 id="prerequisites"> Prerequisites </h2>
The following prerequisites can be installed through the package management
system of your operating system.
<ul>
<li>libgmp (library + developer package)</li>
</ul>
<h3> Install ISL / CLooG libraries </h3>
Polly requires the latest versions of <a href="http://www.cloog.org">CLooG</a>
and <a href="http://repo.or.cz/w/isl.git">isl</a> checked out at
commit cd1939ed06617d00159e8e51b72a804b467e98b4.
<h4> First installation</h4>
<pre>
git clone git://repo.or.cz/cloog.git
cd cloog
git checkout cloog-0.16.3
./get_submodules.sh
cd isl
git remote update
git checkout cd1939ed06617d00159e8e51b72a804b467e98b4
cd ..
./autogen.sh
./configure --with-gmp-prefix=/path/to/gmp/installation --prefix=/path/to/cloog/installation
make
make install
</pre>
<h4> Update an earlier installation</h4>
<pre>
cd cloog
git remote update
git checkout cloog-0.16.3
cd isl
git remote update
git checkout cd1939ed06617d00159e8e51b72a804b467e98b4
cd ..
make
make install
</pre>
<h3> Install Pocc (Optional) </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.sf.net">Pluto</a>, an
advanced data-locality and tileability optimizer. Similar functionality was
recently integrated in Polly (through isl), however the optimizations are not as
mature as the ones in Pluto/PoCC. Hence, if you want to use Pluto to optimize
your code or you want to compare the optimizer integrated in Polly to Pluto you
may want to use PoCC.</p>
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=`pwd`/bin
</pre>
Install scoplib-0.2.0
<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>
<h2 id="source"> Get the code </h2>
<p>
The Polly source code is available in the LLVM SVN repository. For convenience
we also provide a git mirror. To build Polly we extract its source code into the
<em>tools</em> directory of the llvm sources.</p>
<b>A recent LLVM checkout is needed. Older versions may not work!</b>
<h3>SVN</h3>
<pre>
export LLVM_SRC=`pwd`/llvm
svn checkout http://llvm.org/svn/llvm-project/llvm/trunk ${LLVM_SRC}
cd ${LLVM_SRC}/tools
svn checkout http://llvm.org/svn/llvm-project/polly/trunk polly
</pre>
<h3>GIT</h3>
<pre>
export LLVM_SRC=`pwd`/llvm
git clone http://llvm.org/git/llvm.git ${LLVM_SRC}
cd ${LLVM_SRC}/tools
git clone http://llvm.org/git/polly.git
</pre>
<h2 id="build">Build Polly</h2>
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 polly-test'.
<h3>CMake</h3>
<pre>
mkdir build
cd build
cmake ${LLVM_SRC}
# If CMAKE cannot find CLooG and ISL
cmake -DCMAKE_PREFIX_PATH=/cloog/installation .
# To point CMAKE to the scoplib source
cmake -DCMAKE_PREFIX_PATH=/scoplib/installation .
make
</pre>
<h3> Autoconf </h2>
<pre>
mkdir build
cd build
${LLVM_SRC}/configure --with-cloog=/cloog/installation --with-isl=/cloog/installation --with-scoplib=/scoplib/installation
make
</pre>
<h2> Test Polly</h2>
To check if Polly works correctly you can run <em>make polly-test</em>. This
currently works only with a cmake build.
</div>
</body>
</html>