<!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>Open Projects</h1>
  <!--*********************************************************************-->

  LLVM Polly keeps here a list of open projects which each of themselves would
  be a great contribution to Polly. All of these projects are meant to be self
  contained and should take a newcomer around 3-4 months of work. The projects
  we propose are all suiteable as <a
  href="https://developers.google.com/open-source/gsoc/">Google Summer of
  Code</a> projects. In case you are interested in a Google Summer of code
  project make sure to reach out via the Polly <a
  href="https://groups.google.com/group/polly-dev">mailing list</a> early to
  discuss your project proposal.

  <h3>Integrate Polly with the LLVM vectorizers</h3>
  Polly is not only a self-contained optimizer, but also provides a powerful
  dependence and other program analyses. Currently, these analyses are only used
  for our own optimizations. However, LLVM passes such as the loop vectorizer
  would clearly benefit from having direct access to the available Polly
  analyses. In this project, you would define in collaboration with the LLVM
  community and considering existing dependence analysis interface a new
  dependence analysis interface for Polly that allows passes to directly query
  Polly analysis. Even though this project sounds straightforward at a first
  glance, sorting out how to actually make this happen with the current and
  the new pass managers, understanding how and when to invalidate the Polly
  analysis and if dependence information can be computed on-demand make this
  still a challenging project. If successful, this project may be a great way
  to bring features of Polly to standard -O3 optimizations.

  <h3>Register tiling to obtain fast BLAS kernels with Polly</h3>
  Even though Polly is already able to speep up compute kernels significantly,
  when comparing to the best BLAS routines we still are at least one order of
  magnitude off. In this project you will investigate what is needed to close
  this performance gap. Earlier investigations have shown that register tiling
  is one important piece towards this goal. In combination with good tile size
  models and some back-end work, this project is shooting to make common blas
  operations, but also many non-blas kernels competitive with vendor math
  libraries and outperforming the code icc/gcc currently generate.

  <h3>Polly support for Julia - First steps</h3>
  <a href="https://julialang.org/">Julia</a> is a new matlab style programming
  language that provides C like performance for scientific computing. Even
  though Julia also translates to LLVM-IR, parsing and optimizing Julia code
  poses new challenges that currently prevent Polly from optimizing Julia
  code despite the clear need for optimizations such as loop-tiling for Julia.
  In this project you will -- starting from first proof-of-concept patches --
  integrate Polly into Julia and ensure that Julia code can benefit from the
  same high-level loop optimizations as todays C code already does. If time
  permits, making Polly's recent bound-check elimination logic work in Julia
  code would allow the optimization of Julia code, even if save out-of-bound
  checking is used.
  <h3>Interactive Polyhedral Web Calculator</h3>
  At the core of Polly we use the isl math library. isl allows us to describe
  loop transformations with relatively simple higher level operations while
  still providing the full expressiveness of integer polyhedra. To understand
  and describe the transformations we are performing it is often very convenient
  to quickly script example transformations in a scripting language like python.
  isl already comes with a python binding generator, with
  pypyjs there is a python interpreter for the web and with emscriptem isl
  itself can also be compiled to javascript. In this project you combine all
  these components to obtain an interactive polyhedral web calculator, that uses
  latest web technology to nicely illustrate the integer polyhedra you obtain.
</div>
</div>
</body>
</html>
