2011-05-02 15:48:29 +08:00
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
|
|
|
"http://www.w3.org/TR/html4/strict.dtd">
|
|
|
|
<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
|
|
<title>Polly - Polyhedral optimizations for LLVM</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>Polly: Polyhedral optimizations for LLVM</h1>
|
|
|
|
<!--*********************************************************************-->
|
|
|
|
|
2011-12-13 22:53:20 +08:00
|
|
|
<p> Polly is a polyhedral optimizer for LLVM. Using an abstract mathematical
|
|
|
|
representation it analyzes and optimizes the memory access pattern of a
|
|
|
|
program. This includes data-locality optimizations for cache locality as
|
|
|
|
well as automatic parallelization for thread-level and SIMD parallelism.
|
|
|
|
Our overall goal is an integrated optimizer for data-locality and
|
|
|
|
parallelism that takes advantage of multi-cores, cache hierarchies, short
|
|
|
|
vector instructions as well as dedicated accelerators.</p>
|
2011-05-02 15:48:29 +08:00
|
|
|
|
2011-12-13 22:53:20 +08:00
|
|
|
<p>
|
|
|
|
<b>WARNING:</b> Polly started as a research project and larger parts of it are
|
|
|
|
still open research projects. Even though we aim for a robust, production
|
|
|
|
quality implementation, not all parts of Polly are there yet. We invite
|
|
|
|
you to contribute - both as industry collaborator, who may want to use parts
|
|
|
|
of Polly in production, as well as researcher, who is more interested in using
|
|
|
|
his expertise to work on some of the open research projects.
|
|
|
|
</p>
|
2011-05-02 15:48:29 +08:00
|
|
|
|
|
|
|
<!--=====================================================================-->
|
2011-12-13 22:53:25 +08:00
|
|
|
<h2>News</h2>
|
2011-05-02 15:48:29 +08:00
|
|
|
<!--=====================================================================-->
|
|
|
|
|
2011-12-13 22:53:25 +08:00
|
|
|
<table id="news">
|
|
|
|
<tr><td><b>2011</b></td></tr>
|
|
|
|
<tr><td width="120"><p>November</p></td>
|
|
|
|
<td>
|
|
|
|
<p>
|
|
|
|
Talk at the <a href="http://llvm.org/devmtg/2011-11/">
|
|
|
|
LLVM Developer Meeting 2011</a></p>
|
|
|
|
New SCEV parser<br>
|
|
|
|
(Allows parameters in array subscript and max/signextend)
|
|
|
|
</td></tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>October</p></td>
|
|
|
|
<td>
|
|
|
|
<p>Polly can use the isl schedule optimizer<br>
|
|
|
|
(The optimizer is similar to the one in Pluto, but it is part of isl)
|
|
|
|
</p>
|
|
|
|
</td></tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>August</p></td>
|
|
|
|
<td>
|
|
|
|
<p>
|
|
|
|
<a href="example_load_Polly_into_clang.html">Use Polly as
|
|
|
|
clang plugin</a></p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>July</p></td>
|
|
|
|
<td>
|
|
|
|
<p> Polly builder as part of the <a
|
2011-10-23 19:01:07 +08:00
|
|
|
href="http://lab.llvm.org:8011/console">LLVM Buildbots</a>
|
2011-12-13 22:53:25 +08:00
|
|
|
</p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>June</p></td>
|
|
|
|
<td>
|
|
|
|
<p><a href="http://www.grosser.es">Tobias</a> is founded for
|
|
|
|
three years by a <a
|
2011-06-30 22:32:33 +08:00
|
|
|
href="http://research.google.com/university/relations/fellowship_recipients.html">
|
|
|
|
Google Europe Fellowship in Efficient Computing</a>.
|
2011-12-13 22:53:25 +08:00
|
|
|
</p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>May </p></td>
|
|
|
|
<td><p><a href="http://www.grosser.es">Tobias</a>' diploma thesis and
|
|
|
|
Raghesh's master thesis. See our <a
|
|
|
|
href="publications.html">list of publications</a>.</p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>April</p></td>
|
|
|
|
<td><p>Polly moves to the LLVM infrastructure (svn, bugtracker)</p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>March</p></td>
|
|
|
|
<td><p>Presentation at <a
|
|
|
|
href="http://impact2011.inrialpes.fr/">CGO/IMPACT</a></p>
|
|
|
|
<p>Polly can compile
|
|
|
|
polybench 2.0 with vectorization and OpenMP code generation</p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td><p>Februar</p></td>
|
|
|
|
<td><p>pollycc - a script to automatically compile with
|
|
|
|
polyhedral optimizations </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p> Januar</p></td>
|
|
|
|
<td><p> Basic OpenMP support, Alias analysis integration,
|
|
|
|
Pluto/POCC support </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr><td><b><br>2010</b></td></tr>
|
|
|
|
<tr>
|
|
|
|
<td><p> Dezember </p></td>
|
|
|
|
<td><p>Basic vectorization support </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p> November </p></td>
|
|
|
|
<td><p>Talk at the <a
|
|
|
|
href="http://llvm.org/devmtg/2010-11/">LLVM Developer Meeting</a> </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>October</p></td>
|
|
|
|
<td><p>Dependency analysis </p>
|
|
|
|
<p>Finished Phase 1 - Get something working </p>
|
|
|
|
<p>Support scalar dependences and sequential SCoPs </p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>August</p></td>
|
|
|
|
<td><p>RegionInfo pass committed to LLVM</p>
|
|
|
|
<p>llvm-test suite compiles </p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>July</p></td>
|
|
|
|
<td><p>Code generation works for normal SCoPs. </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>June </p></td>
|
|
|
|
<td><p>OpenSCoP import/export works (as far as openscop is finished).</p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>May</p></td>
|
|
|
|
<td><p>The CLooG AST can be parsed.</p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>April</p></td>
|
|
|
|
<td><p>SCoPs can automatically be detected. </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>March</p></td>
|
|
|
|
<td><p>The RegionInfo framework is almost completed. </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>February</p></td>
|
|
|
|
<td><p>Translate a simple loop to Polly-IR and regenerate a loop structure
|
|
|
|
with CLooG works. </p>
|
|
|
|
<p>ISL and CLooG are integrated. </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td><p>January</p></td>
|
|
|
|
<td><p>The RegionInfo pass is finished. </p></td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr><td><b><br>2009</b></td></tr>
|
|
|
|
<tr>
|
|
|
|
<td><p>End of the year</p></td>
|
|
|
|
<td><p>Work on the infrastructure started. </p></td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
2011-05-02 15:48:29 +08:00
|
|
|
</ul>
|
|
|
|
<!--=====================================================================-->
|
|
|
|
<h2> The architecture of Polly</h2>
|
|
|
|
<!--=====================================================================-->
|
|
|
|
<img src='images/architecture.png' />
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|