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>
|
|
|
|
<!--*********************************************************************-->
|
|
|
|
|
|
|
|
<p>Polly is a project that works on advanced optimizations for data-locality
|
|
|
|
and parallelism. It uses the polyhedral model, a high-level mathematical
|
|
|
|
abstraction, to analyse and optimize the memory access pattern of a program.
|
|
|
|
Due to the use of a polyhedral representation Polly can easily calculate
|
|
|
|
detailed data dependency information which it uses to derive an optimized loop
|
|
|
|
structure. Polly can speed up sequential code by improving memory locality and
|
|
|
|
consequently the cache use. Furthermore, Polly is able to expose different
|
|
|
|
kinds of parallelism which it exploits by introducing (basic) OpenMP and SIMD
|
|
|
|
code. The automatic use of vector accelerators is planned and will take
|
|
|
|
avantage of the ongoing work on the LLVM PTX backend.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<em> Polly is still a research project, that is not production quality. We are
|
|
|
|
working on a robust implementation of Polly's core. You are invited to join us
|
|
|
|
by directly contributing to Polly or by using it for your own research.</em>
|
|
|
|
|
|
|
|
<!--=====================================================================-->
|
|
|
|
<h2>Major changes in Polly</h2>
|
|
|
|
<!--=====================================================================-->
|
|
|
|
|
|
|
|
<ul>
|
2011-11-10 22:00:04 +08:00
|
|
|
<li>November 2011 - Talk at the <a href="http://llvm.org/devmtg/2011-11/">
|
|
|
|
LLVM Developer Meeting 2011</a>
|
|
|
|
</li>
|
|
|
|
<li>November 2011 - New SCEV parser (Support for parameters in array
|
|
|
|
subscript as well as max/min/signextend)
|
|
|
|
</li>
|
|
|
|
<li>October 2011 - Support for the isl scheduler (similar to Pluto, but
|
|
|
|
part of isl. At the moment it still has performance issues).
|
|
|
|
</li>
|
|
|
|
<li>August 2011 - <a href="example_load_Polly_into_clang.html">Use Polly as
|
|
|
|
clang plugin</a>
|
|
|
|
</li>
|
2011-07-19 05:27:42 +08:00
|
|
|
<li>July 2011 - Add Polly builder to the <a
|
2011-10-23 19:01:07 +08:00
|
|
|
href="http://lab.llvm.org:8011/console">LLVM Buildbots</a>
|
2011-07-19 04:34:41 +08:00
|
|
|
</li>
|
2011-06-30 22:43:35 +08:00
|
|
|
<li>June 2011 - <a href="http://www.grosser.es">Tobias</a> is founded for
|
2011-06-30 22:32:33 +08:00
|
|
|
three years through a <a
|
|
|
|
href="http://research.google.com/university/relations/fellowship_recipients.html">
|
|
|
|
Google Europe Fellowship in Efficient Computing</a>.
|
|
|
|
</li>
|
|
|
|
<li>May 2011 - <a href="http://www.grosser.es">Tobias</a>' diploma thesis and
|
|
|
|
Raghesh's master thesis are published. For details see our <a
|
|
|
|
href="publications.html">list of publications</a>.</li>
|
2011-05-02 15:48:29 +08:00
|
|
|
<li>April 2011 - Polly moves to the LLVM infrastructure </li>
|
|
|
|
<li>March 2011 - Polly is presented at <a
|
|
|
|
href="http://impact2011.inrialpes.fr/">CGO/IMPACT 2011</a>, Polly can compile
|
|
|
|
polybench 2.0 with vectorization and OpenMP code generation. </li>
|
|
|
|
<li> Februar 2011 - pollycc - a script to automatically compile with
|
|
|
|
polyhedral optimizations </li>
|
|
|
|
<li> Januar 2011 - Basic OpenMP support, Alias analysis integration,
|
|
|
|
Pluto/POCC support </li>
|
|
|
|
<li> Dezember 2010 - Basic vectorization support </li>
|
|
|
|
<li> November 2010 - Talk about Polly at the <a
|
|
|
|
href="http://llvm.org/devmtg/2010-11/">LLVM Developer Meeting</a> </li>
|
|
|
|
<li> October 2010 - Added dependency analysis </li>
|
|
|
|
<li> October 2010 - Finished Phase 1 - Get something working </li>
|
|
|
|
<li> October 2010 - Support for scalar dependences and sequential SCoPs </li>
|
|
|
|
<li> August 2010 - RegionInfo pass committed to llvm </li>
|
|
|
|
<li> August 2010 - llvm-test suite compiles </li>
|
|
|
|
<li> July 2010 - Code generation works for normal SCoPs. </li>
|
|
|
|
<li> June 2010 - OpenSCoP import/export works (as far as openscop is finished)
|
|
|
|
</li>
|
|
|
|
<li> May 2010 - The CLooG AST can be parsed </li>
|
|
|
|
<li> April 2010 - SCoPs can automatically be detected (WIP) </li>
|
|
|
|
<li> March 2010 - The RegionInfo framework is almost completed. </li>
|
|
|
|
<li> February 2010 - Translating a simple loop to Polly-IR and passing it to
|
|
|
|
CLooG-isl to regenerate a loop structure works. </li>
|
|
|
|
<li> February 2010 - ISL and CLooG are integrated. </li>
|
|
|
|
<li> January 2010 - The RegionInfo pass is finished. </li>
|
|
|
|
<li> End of 2009 - Work on the infrastructure started. </li>
|
|
|
|
</ul>
|
|
|
|
<!--=====================================================================-->
|
|
|
|
<h2> The architecture of Polly</h2>
|
|
|
|
<!--=====================================================================-->
|
|
|
|
<img src='images/architecture.png' />
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|