<!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">
  <script src="video-js/video.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript">
    VideoJS.setupAllWhenReady();
  </script>

  <!-- Include the VideoJS Stylesheet -->
  <link rel="stylesheet" href="video-js/video-js.css" type="text/css" media="screen" title="Video JS">
</head>
<body>
<div id="box">
<!--#include virtual="menu.html.incl"-->
<div id="content">
  <!--*********************************************************************-->
  <h1>About Polly</h1>
  <!--*********************************************************************-->

  <p> Polly is a high-level loop and data-locality optimizer and optimization
  infrastructure for LLVM. It uses an abstract mathematical representation based
  on integer polyhedra to analyze and optimize the memory access pattern of a
  program. We currently perform classical loop transformations, especially
  tiling and loop fusion to improve data-locality. Polly can also exploit
  OpenMP level parallelism, expose SIMDization opportunities. Work has also be
  done in the area of automatic GPU code generation.</p>

  For many users, however, it's not the existing optimizations in Polly that are
  of most interest, but the new analyses and optimizations enabled by the Polly
  infrastructure. At
  <a href="http://polyhedral.info">polyhedral.info</a> you can get an idea of
  what has already been done and what is possible in the context of polyhedral
  compilation.

  <!--=====================================================================-->
  <h2>News</h2>
  <!--=====================================================================-->

  <table id="news">
  <tr><td><b>2017</b></td></tr>
  <tr><td width="120"><p>September</p></td>
  <td>
    <h4>High-Performance Generalized Matrix Multiplication</h4>
    Polly automatically detects and optimizes generalized matrix
    multiplication, the computation C &larr; &alpha; &otimes; C &oplus; &beta;
    &otimes; A &otimes; B, where A, B, and C are three appropriately sized
    matrices, &oplus; and &otimes; operations are originating from the
    corresponding matrix semiring, and &alpha; and &beta; are constants, and
    beta is not equal to zero. It allows to obtain the highly optimized form
    structured similar to the expert implementation of GEMM that can be found
    in GotoBLAS and its successors.
    <h4>The performance evaluation of GEMM</h4>
    <img src="images/GEMM_double.png" /><br />
  </td>
  <tr><td><b>2017</b></td></tr>
  <tr><td width="120"><p>January</p></td>
  <td>
  <a href="http://impact.gforge.inria.fr/impact2017">IMPACT 2017</a> program
  announced. Join IMPACT 2017 on January 23rd in Stockholm <a
  href="https://www.hipeac.net/2017/stockholm/">@HiPEAC'17</a>.
  </td>
  </tr>
  <tr><td><b>2016</b></td></tr>
  <tr><td width="120"><p>August</p></td>
  <td>
  <a href="http://impact.gforge.inria.fr/impact2017">IMPACT 2017</a> the 7th
  International Workshop on Polyhedral Compilation Techniques will take place
  at January 23-25, 2017 together with HiPEAC 2017 in Stockholm, Sweden. It is
  a great opportunity to discuss and present work on Polyhedral Compilation,
  including work on Polly.
  </td>
  </tr>
  <tr><td width="120"><p>April</p></td>
  <td>
    A source checkout that contains Polly now provides Polly functionality
    by default in clang/opt/bugpoint without the need to load an additional
    module.
  </td>
  </tr>
  <tr><td><b>2015</b></td></tr>
  <tr><td width="120"><p>July</p></td>
  <td>
    <h4>AST Generation Paper published in TOPLAS</h4>
    The July issue of TOPLAS contains a 50 page discussion of the AST
    generation techniques used in Polly. This discussion gives not only an
    in-depth description of how we (re)generate an imperative AST from our
    polyhedral based mathematical program description, but also gives
    interesting insights about:
    <ul>
      <li><b>Schedule trees:</b> A tree-based mathematical program description
      that enables us to perform loop transformations on an abstract level,
      while issues like the generation of the correct loop structure and loop
      bounds will be taken care of by our AST generator.
      <li><b>Polyhedral unrolling:</b> We discuss techniques that allow the
      unrolling of non-trivial loops in the context of parameteric loop bounds,
      complex tile shapes and conditionally executed statements. Such unrolling
      support enables the generation of predicated code e.g. in the context of
      GPGPU computing.
      <li><b>Isolation for full/partial tile separation:</b> We discuss native
      support for handling full/partial tile separation and -- in general --
      native support for isolation of boundary cases to enable smooth code
      generation for core computations.
      <li><b>AST generation with modulo constraints:</b> We discuss how modulo
      mappings are lowered to efficient C/LLVM code.
      <li><b>User-defined constraint sets for run-time checks</b> We discuss how
      arbitrary sets of constraints can be used to automatically create run-time
      checks that ensure a set of constrainst actually hold. This feature is
      very useful to verify at run-time various assumptions that have been taken
      program optimization.
    </ul>

   <a href="http://www.grosser.es#pub-polyhedral-AST-generation">
   <em>Polyhedral AST generation is more than scanning polyhedra</em></a><br />
    Tobias Grosser, Sven Verdoolaege, Albert Cohen<br />
    ACM Transations on Programming Languages and Systems (TOPLAS), 37(4),
    July 2015

    <br>
    <br>
    <br>
    <br>
  </td>
  </tr>
  <tr><td width="120"><p>February</p></td>
  <td>
    <h4>Polly allows now non-affine subregions</h4>
    Data-dependent or floating point conditionals inside a SCoP can now be
    overapproximated in order to increase the applicability on general purpose
    code.
  </td>
  </tr>
  <tr><td><b>2014</b></td></tr>
  <tr><td width="120"><p>August</p></td>
  <td>
  <h4>Polly drops the support of ScopLib and the external optimizer PoCC</h4>
  The support for ScopLib as an exchange format has been removed as recent
  versions of clan, candl and pluto all support the OpenScop exchange format.

  The support of the external optmizer PoCC has been dropped in favor of the
  isl optimizer (default) and the still available pluto support.
  </td>
  </tr>
  <tr><td><b>2014</b></td></tr>
  <tr><td width="120"><p>June</p></td>
  <td>
  <h4>Polly can be built without GPL licensed software</h4> After Sebastian
  Pop's
  and David Peixotto's (both Qualcomm) recent <a
  href="http://repo.or.cz/w/isl.git/commit/60703e3ee89b9d5d4d1afb6a3f611292c0884574">commit</a>
  to isl, isl's latest development version can be built with imath instead of
  GMP. With both CLooG and gmp having become optional, the last obilgatory
  dependency to GPL licensed software has been removed. Now Polly only depends
  on isl (and the included imath), which are both MIT licensed.
  </td>
  </tr>
  <tr><td width="120"><p>April</p></td>
  <td>
  <h4>Polly Phone Call - 23April</h4>
  We had a polly phone call about delinearizing array accesses (II)<a
  href="https://docs.google.com/document/d/1IZewI8Up0iEkCNIPr6gVtwJxF7RV6KmXkdwOBM_Q5Cs/edit?usp=sharing ">Meeting notes</a> are available online.
  <h4>Polly Phone Call - 17th April</h4>
  We had a polly phone call about delinearizing array accesses <a
  href="https://docs.google.com/document/d/14d3ehkH2MsvBdqsEOSYjysH0Ztyzb75Lp843hnxh2IA/edit?usp=sharing">Meeting notes</a> are available online.
  <h4>Polly Phone Call - 10th April</h4>
  We had a polly phone call. <a
  href="https://docs.google.com/document/d/12W-qZjiZGEQ_lVrob4OzvKJI3EooonC-ap1b9f9KCUE/edit?usp=sharing">Meeting notes</a> are available online.
  <h4>Polly Phone Call - 4th April</h4>
  We had a polly phone call. <a
  href="https://drive.google.com/folderview?id=0B7OMOXTgCYIUWkpJbWVJcW04ams&usp=sharing">Meeting notes</a> are available online.
  </td>
  </tr>
  <tr><td width="120"><p>March</p></td>
  <td>
  <h4>Static link Polly into tools</h4> Polly can now be configured with 'cmake
  -D LINK_POLLY_INTO_TOOLS:Bool=ON' to be statically linked in the tools (opt,
  bugpoint, and clang.) This makes it easier to use polly without having to load
  a shared library, and it also reduces the complexity of compiling Polly on
  Windows.
  </td>
  </tr>
  <tr><td width="120"><p>February</p></td>
  <td>
  <h4>Polly presentation at FOSDEM 2014</h4> Polly was <a
  href="https://fosdem.org/2014/schedule/event/polly/">presented</a> at the
  FOSDEM LLVM developer's meeting.
  <h4>New LLVM test-suite buildbots</h4>
  The set of <a href="http://lab.llvm.org:8011/console?category=polly">Polly
  buildbots</a> has been extended. We now have 16 new blades that track
  correctness and performance when compiling the LLVM test-suite. For now five
  of them are used to provide <a
  href="http://llvm.org/perf/db_default/v4/nts/22463">fine granularity
  reports</a> (almost per-commit)
  for 'clang -O3' (no polly). We also have six machines that track different
  configurations of polly.
  </td>
  </tr>
  <tr><td width="120"><p>January</p></td>
  <td>
  <h4>islplot released</h4>
  <a href="https://github.com/tobig/islplot">islplot</a> is a library that
  generates illustrations of integer sets and maps. It relies on <a
  href="http://repo.or.cz/w/isl.git">isl</a> to model the integer sets and uses the <a
  href="https://pypi.python.org/pypi/islpy">islpy</a> Python bindings to access
  them. Plotting is performed with <a
  href="http://matplotlib.org">matplotlib</a>. The following <a
  href="http://nbviewer.ipython.org/github/tobig/islplot/blob/master/notebooks/islplot-examples.ipynb">
  Examples</a> show its use.
  </td>
  </tr>
  <tr><td><b>2013</b></td></tr>
  <tr><td width="120"><p>November</p></td>
  <td>
  <h4>Loop optimization BoF at upcoming LLVM conference</h4>
  At the upcoming <a href="http://llvm.org/devmtg/2013-11/#bof5">LLVM conference
  </a> there will be a loop optimization BoF discussing Polly and other high
  level loop optimizers.
  </td>
  </tr>
  <tr><td width="120"><p>October</p></td>
  <td>
  <h4>Automatic code coverage and static analysis tests</h4>
  Sylvestre Ledru set up automatic tests for <a
  href="http://buildd-clang.debian.net/coverage/">code coverage</a> and
  <a href="http://buildd-clang.debian.net/scan-build/">static analysis</a>
  which run at least once a day and which include results for Polly.
  <h4>Move to CLooG 0.18.1 and isl 0.12.1</h4>
  With the move to an isl 0.12 version Polly can be compiled without the
  need to link directly to GMP (if isl is used for code generation). Currently
  isl is still internally using GMP, but private patches exist to also remove
  this dependency. Without the use of GMP, a <b>GPL free</b> version of Polly
  is possible.
  </td></tr>

  <tr><td><b>2012</b></td></tr>
  <tr><td width="120"><p>December</p></td>
  <td>
  <h4> New publication in the PPL Journal
     </h4>

      We published a journal version of the Polly paper named
      <em>
      Polly - Performing polyhedral optimizations on a low-level intermediate
      representation</em> in the Parallel Processing Letters 2012.
  </td></tr>
  <tr><td width="120"><p>September</p></td>
  <td>
  <h4>Experimental support for the <b>new isl code generator</b></h4>
     The code generator can be parameterized on a fine-grained
     level. It gives direct control for example over unrolling, the amount of
     control overhead and the code size. It can also be used to
     create loops to handle border conditions or to perform full-partial tile
     separation.<br />
     We also relicensed isl under the <b>MIT license</b>. This means, with the
     exception of GMP (LGPL), there is no other (L)GPL licensed software used in
     Polly. The
     use of GMP is limited to a well defined interface. Replacing it with
     a BSD licensed replacement is a tractable engineering project we would
     be very interested in. For more information about isl see the <a
     href="http://www.kotnet.org/~skimo/isl/manual.pdf">isl manual</a>.
     </p>
  </td></tr>
  <tr><td width="120"><p>July</p></td>
  <td>
  <p> Polly can now be directly linked to the <a
href="http://pluto-compiler.sourceforge.net/">Pluto optimizer</a>. We were
already able to perform Pluto-like optimizations with Polly, as a similar
algorithm was added to isl half a year ago. However, being able to directly
compare with the original implementation will not only bring in competition in
the optimizer field. It will also allow new experiments with a cutting edge
research tool.<br \>
  This support was on of the outcomes of the 1-day Polly workshop and the
  following week of joint work at IISC Bangalore and in cooperation with
  AMD India.
  </td></tr>
  <td>
  </td></tr>
  <tr><td width="120"><p>February</p></td>
  <td>
  <p>Polly is an official LLVM project, reachable at <a
  href="http://polly.llvm.org">http://polly.llvm.org</a></p>
  </td></tr>
  <tr><td width="120"><p>January</p></td>
  <td>
  <p>Improved support for the isl scheduling optimizer</p>
  Polly can now automatically optimize all <a
  href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">polybench
  2.0</a> kernels without the help of
  an external optimizer. The compile time is reasonable and we can show
  notable speedups for various kernels.
  </td></tr>

  <tr>
  <tr><td><b><br/>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
  href="http://lab.llvm.org:8011/console">LLVM Buildbots</a>
  </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
  href="http://research.google.com/university/relations/fellowship_recipients.html">
  Google Europe Fellowship in Efficient Computing</a>.
  </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>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>
  </ul>
</div>
</div>
</body>
</html>
