annotate polly/www/index.html @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
anatofuz
parents:
diff changeset
2 "http://www.w3.org/TR/html4/strict.dtd">
anatofuz
parents:
diff changeset
3 <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
anatofuz
parents:
diff changeset
4 <html>
anatofuz
parents:
diff changeset
5 <head>
anatofuz
parents:
diff changeset
6 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
anatofuz
parents:
diff changeset
7 <title>Polly - Polyhedral optimizations for LLVM</title>
anatofuz
parents:
diff changeset
8 <link type="text/css" rel="stylesheet" href="menu.css">
anatofuz
parents:
diff changeset
9 <link type="text/css" rel="stylesheet" href="content.css">
anatofuz
parents:
diff changeset
10 <script src="video-js/video.js" type="text/javascript" charset="utf-8"></script>
anatofuz
parents:
diff changeset
11 <script type="text/javascript">
anatofuz
parents:
diff changeset
12 VideoJS.setupAllWhenReady();
anatofuz
parents:
diff changeset
13 </script>
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 <!-- Include the VideoJS Stylesheet -->
anatofuz
parents:
diff changeset
16 <link rel="stylesheet" href="video-js/video-js.css" type="text/css" media="screen" title="Video JS">
anatofuz
parents:
diff changeset
17 </head>
anatofuz
parents:
diff changeset
18 <body>
anatofuz
parents:
diff changeset
19 <div id="box">
anatofuz
parents:
diff changeset
20 <!--#include virtual="menu.html.incl"-->
anatofuz
parents:
diff changeset
21 <div id="content">
anatofuz
parents:
diff changeset
22 <!--*********************************************************************-->
anatofuz
parents:
diff changeset
23 <h1>About Polly</h1>
anatofuz
parents:
diff changeset
24 <!--*********************************************************************-->
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 <p> Polly is a high-level loop and data-locality optimizer and optimization
anatofuz
parents:
diff changeset
27 infrastructure for LLVM. It uses an abstract mathematical representation based
anatofuz
parents:
diff changeset
28 on integer polyhedra to analyze and optimize the memory access pattern of a
anatofuz
parents:
diff changeset
29 program. We currently perform classical loop transformations, especially
anatofuz
parents:
diff changeset
30 tiling and loop fusion to improve data-locality. Polly can also exploit
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
31 OpenMP level parallelism, expose SIMDization opportunities.</p>
150
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 For many users, however, it's not the existing optimizations in Polly that are
anatofuz
parents:
diff changeset
34 of most interest, but the new analyses and optimizations enabled by the Polly
anatofuz
parents:
diff changeset
35 infrastructure. At
anatofuz
parents:
diff changeset
36 <a href="https://polyhedral.info">polyhedral.info</a> you can get an idea of
anatofuz
parents:
diff changeset
37 what has already been done and what is possible in the context of polyhedral
anatofuz
parents:
diff changeset
38 compilation.
anatofuz
parents:
diff changeset
39
anatofuz
parents:
diff changeset
40 <!--=====================================================================-->
anatofuz
parents:
diff changeset
41 <h2>News</h2>
anatofuz
parents:
diff changeset
42 <!--=====================================================================-->
anatofuz
parents:
diff changeset
43
anatofuz
parents:
diff changeset
44 <table id="news">
anatofuz
parents:
diff changeset
45 <tr><td><b>2017</b></td></tr>
anatofuz
parents:
diff changeset
46 <tr><td width="120"><p>September</p></td>
anatofuz
parents:
diff changeset
47 <td>
anatofuz
parents:
diff changeset
48 <h4>High-Performance Generalized Matrix Multiplication</h4>
anatofuz
parents:
diff changeset
49 Polly automatically detects and optimizes generalized matrix
anatofuz
parents:
diff changeset
50 multiplication, the computation C &larr; &alpha; &otimes; C &oplus; &beta;
anatofuz
parents:
diff changeset
51 &otimes; A &otimes; B, where A, B, and C are three appropriately sized
anatofuz
parents:
diff changeset
52 matrices, &oplus; and &otimes; operations are originating from the
anatofuz
parents:
diff changeset
53 corresponding matrix semiring, and &alpha; and &beta; are constants, and
anatofuz
parents:
diff changeset
54 beta is not equal to zero. It allows to obtain the highly optimized form
anatofuz
parents:
diff changeset
55 structured similar to the expert implementation of GEMM that can be found
anatofuz
parents:
diff changeset
56 in GotoBLAS and its successors.
anatofuz
parents:
diff changeset
57 <h4>The performance evaluation of GEMM</h4>
anatofuz
parents:
diff changeset
58 <img src="images/GEMM_double.png" /><br />
anatofuz
parents:
diff changeset
59 </td>
anatofuz
parents:
diff changeset
60 <tr><td><b>2017</b></td></tr>
anatofuz
parents:
diff changeset
61 <tr><td width="120"><p>January</p></td>
anatofuz
parents:
diff changeset
62 <td>
anatofuz
parents:
diff changeset
63 <a href="http://impact.gforge.inria.fr/impact2017">IMPACT 2017</a> program
anatofuz
parents:
diff changeset
64 announced. Join IMPACT 2017 on January 23rd in Stockholm <a
anatofuz
parents:
diff changeset
65 href="https://www.hipeac.net/2017/stockholm/">@HiPEAC'17</a>.
anatofuz
parents:
diff changeset
66 </td>
anatofuz
parents:
diff changeset
67 </tr>
anatofuz
parents:
diff changeset
68 <tr><td><b>2016</b></td></tr>
anatofuz
parents:
diff changeset
69 <tr><td width="120"><p>August</p></td>
anatofuz
parents:
diff changeset
70 <td>
anatofuz
parents:
diff changeset
71 <a href="http://impact.gforge.inria.fr/impact2017">IMPACT 2017</a> the 7th
anatofuz
parents:
diff changeset
72 International Workshop on Polyhedral Compilation Techniques will take place
anatofuz
parents:
diff changeset
73 at January 23-25, 2017 together with HiPEAC 2017 in Stockholm, Sweden. It is
anatofuz
parents:
diff changeset
74 a great opportunity to discuss and present work on Polyhedral Compilation,
anatofuz
parents:
diff changeset
75 including work on Polly.
anatofuz
parents:
diff changeset
76 </td>
anatofuz
parents:
diff changeset
77 </tr>
anatofuz
parents:
diff changeset
78 <tr><td width="120"><p>April</p></td>
anatofuz
parents:
diff changeset
79 <td>
anatofuz
parents:
diff changeset
80 A source checkout that contains Polly now provides Polly functionality
anatofuz
parents:
diff changeset
81 by default in clang/opt/bugpoint without the need to load an additional
anatofuz
parents:
diff changeset
82 module.
anatofuz
parents:
diff changeset
83 </td>
anatofuz
parents:
diff changeset
84 </tr>
anatofuz
parents:
diff changeset
85 <tr><td><b>2015</b></td></tr>
anatofuz
parents:
diff changeset
86 <tr><td width="120"><p>July</p></td>
anatofuz
parents:
diff changeset
87 <td>
anatofuz
parents:
diff changeset
88 <h4>AST Generation Paper published in TOPLAS</h4>
anatofuz
parents:
diff changeset
89 The July issue of TOPLAS contains a 50 page discussion of the AST
anatofuz
parents:
diff changeset
90 generation techniques used in Polly. This discussion gives not only an
anatofuz
parents:
diff changeset
91 in-depth description of how we (re)generate an imperative AST from our
anatofuz
parents:
diff changeset
92 polyhedral based mathematical program description, but also gives
anatofuz
parents:
diff changeset
93 interesting insights about:
anatofuz
parents:
diff changeset
94 <ul>
anatofuz
parents:
diff changeset
95 <li><b>Schedule trees:</b> A tree-based mathematical program description
anatofuz
parents:
diff changeset
96 that enables us to perform loop transformations on an abstract level,
anatofuz
parents:
diff changeset
97 while issues like the generation of the correct loop structure and loop
anatofuz
parents:
diff changeset
98 bounds will be taken care of by our AST generator.
anatofuz
parents:
diff changeset
99 <li><b>Polyhedral unrolling:</b> We discuss techniques that allow the
anatofuz
parents:
diff changeset
100 unrolling of non-trivial loops in the context of parameteric loop bounds,
anatofuz
parents:
diff changeset
101 complex tile shapes and conditionally executed statements. Such unrolling
anatofuz
parents:
diff changeset
102 support enables the generation of predicated code e.g. in the context of
anatofuz
parents:
diff changeset
103 GPGPU computing.
anatofuz
parents:
diff changeset
104 <li><b>Isolation for full/partial tile separation:</b> We discuss native
anatofuz
parents:
diff changeset
105 support for handling full/partial tile separation and -- in general --
anatofuz
parents:
diff changeset
106 native support for isolation of boundary cases to enable smooth code
anatofuz
parents:
diff changeset
107 generation for core computations.
anatofuz
parents:
diff changeset
108 <li><b>AST generation with modulo constraints:</b> We discuss how modulo
anatofuz
parents:
diff changeset
109 mappings are lowered to efficient C/LLVM code.
anatofuz
parents:
diff changeset
110 <li><b>User-defined constraint sets for run-time checks</b> We discuss how
anatofuz
parents:
diff changeset
111 arbitrary sets of constraints can be used to automatically create run-time
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
112 checks that ensure a set of constraints actually hold. This feature is
150
anatofuz
parents:
diff changeset
113 very useful to verify at run-time various assumptions that have been taken
anatofuz
parents:
diff changeset
114 program optimization.
anatofuz
parents:
diff changeset
115 </ul>
anatofuz
parents:
diff changeset
116
anatofuz
parents:
diff changeset
117 <a href="https://www.grosser.es#pub-polyhedral-AST-generation">
anatofuz
parents:
diff changeset
118 <em>Polyhedral AST generation is more than scanning polyhedra</em></a><br />
anatofuz
parents:
diff changeset
119 Tobias Grosser, Sven Verdoolaege, Albert Cohen<br />
anatofuz
parents:
diff changeset
120 ACM Transations on Programming Languages and Systems (TOPLAS), 37(4),
anatofuz
parents:
diff changeset
121 July 2015
anatofuz
parents:
diff changeset
122
anatofuz
parents:
diff changeset
123 <br>
anatofuz
parents:
diff changeset
124 <br>
anatofuz
parents:
diff changeset
125 <br>
anatofuz
parents:
diff changeset
126 <br>
anatofuz
parents:
diff changeset
127 </td>
anatofuz
parents:
diff changeset
128 </tr>
anatofuz
parents:
diff changeset
129 <tr><td width="120"><p>February</p></td>
anatofuz
parents:
diff changeset
130 <td>
anatofuz
parents:
diff changeset
131 <h4>Polly allows now non-affine subregions</h4>
anatofuz
parents:
diff changeset
132 Data-dependent or floating point conditionals inside a SCoP can now be
anatofuz
parents:
diff changeset
133 overapproximated in order to increase the applicability on general purpose
anatofuz
parents:
diff changeset
134 code.
anatofuz
parents:
diff changeset
135 </td>
anatofuz
parents:
diff changeset
136 </tr>
anatofuz
parents:
diff changeset
137 <tr><td><b>2014</b></td></tr>
anatofuz
parents:
diff changeset
138 <tr><td width="120"><p>August</p></td>
anatofuz
parents:
diff changeset
139 <td>
anatofuz
parents:
diff changeset
140 <h4>Polly drops the support of ScopLib and the external optimizer PoCC</h4>
anatofuz
parents:
diff changeset
141 The support for ScopLib as an exchange format has been removed as recent
anatofuz
parents:
diff changeset
142 versions of clan, candl and pluto all support the OpenScop exchange format.
anatofuz
parents:
diff changeset
143
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
144 The support of the external optimizer PoCC has been dropped in favor of the
150
anatofuz
parents:
diff changeset
145 isl optimizer (default) and the still available pluto support.
anatofuz
parents:
diff changeset
146 </td>
anatofuz
parents:
diff changeset
147 </tr>
anatofuz
parents:
diff changeset
148 <tr><td><b>2014</b></td></tr>
anatofuz
parents:
diff changeset
149 <tr><td width="120"><p>June</p></td>
anatofuz
parents:
diff changeset
150 <td>
anatofuz
parents:
diff changeset
151 <h4>Polly can be built without GPL licensed software</h4> After Sebastian
anatofuz
parents:
diff changeset
152 Pop's
anatofuz
parents:
diff changeset
153 and David Peixotto's (both Qualcomm) recent <a
anatofuz
parents:
diff changeset
154 href="https://repo.or.cz/w/isl.git/commit/60703e3ee89b9d5d4d1afb6a3f611292c0884574">commit</a>
anatofuz
parents:
diff changeset
155 to isl, isl's latest development version can be built with imath instead of
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
156 GMP. With both CLooG and gmp having become optional, the last obligatory
150
anatofuz
parents:
diff changeset
157 dependency to GPL licensed software has been removed. Now Polly only depends
anatofuz
parents:
diff changeset
158 on isl (and the included imath), which are both MIT licensed.
anatofuz
parents:
diff changeset
159 </td>
anatofuz
parents:
diff changeset
160 </tr>
anatofuz
parents:
diff changeset
161 <tr><td width="120"><p>April</p></td>
anatofuz
parents:
diff changeset
162 <td>
anatofuz
parents:
diff changeset
163 <h4>Polly Phone Call - 23April</h4>
anatofuz
parents:
diff changeset
164 We had a polly phone call about delinearizing array accesses (II)<a
anatofuz
parents:
diff changeset
165 href="https://docs.google.com/document/d/1IZewI8Up0iEkCNIPr6gVtwJxF7RV6KmXkdwOBM_Q5Cs/edit?usp=sharing ">Meeting notes</a> are available online.
anatofuz
parents:
diff changeset
166 <h4>Polly Phone Call - 17th April</h4>
anatofuz
parents:
diff changeset
167 We had a polly phone call about delinearizing array accesses <a
anatofuz
parents:
diff changeset
168 href="https://docs.google.com/document/d/14d3ehkH2MsvBdqsEOSYjysH0Ztyzb75Lp843hnxh2IA/edit?usp=sharing">Meeting notes</a> are available online.
anatofuz
parents:
diff changeset
169 <h4>Polly Phone Call - 10th April</h4>
anatofuz
parents:
diff changeset
170 We had a polly phone call. <a
anatofuz
parents:
diff changeset
171 href="https://docs.google.com/document/d/12W-qZjiZGEQ_lVrob4OzvKJI3EooonC-ap1b9f9KCUE/edit?usp=sharing">Meeting notes</a> are available online.
anatofuz
parents:
diff changeset
172 <h4>Polly Phone Call - 4th April</h4>
anatofuz
parents:
diff changeset
173 We had a polly phone call. <a
anatofuz
parents:
diff changeset
174 href="https://drive.google.com/folderview?id=0B7OMOXTgCYIUWkpJbWVJcW04ams&usp=sharing">Meeting notes</a> are available online.
anatofuz
parents:
diff changeset
175 </td>
anatofuz
parents:
diff changeset
176 </tr>
anatofuz
parents:
diff changeset
177 <tr><td width="120"><p>March</p></td>
anatofuz
parents:
diff changeset
178 <td>
anatofuz
parents:
diff changeset
179 <h4>Static link Polly into tools</h4> Polly can now be configured with 'cmake
anatofuz
parents:
diff changeset
180 -D LINK_POLLY_INTO_TOOLS:Bool=ON' to be statically linked in the tools (opt,
anatofuz
parents:
diff changeset
181 bugpoint, and clang.) This makes it easier to use polly without having to load
anatofuz
parents:
diff changeset
182 a shared library, and it also reduces the complexity of compiling Polly on
anatofuz
parents:
diff changeset
183 Windows.
anatofuz
parents:
diff changeset
184 </td>
anatofuz
parents:
diff changeset
185 </tr>
anatofuz
parents:
diff changeset
186 <tr><td width="120"><p>February</p></td>
anatofuz
parents:
diff changeset
187 <td>
anatofuz
parents:
diff changeset
188 <h4>Polly presentation at FOSDEM 2014</h4> Polly was <a
anatofuz
parents:
diff changeset
189 href="https://fosdem.org/2014/schedule/event/polly/">presented</a> at the
anatofuz
parents:
diff changeset
190 FOSDEM LLVM developer's meeting.
anatofuz
parents:
diff changeset
191 <h4>New LLVM test-suite buildbots</h4>
anatofuz
parents:
diff changeset
192 The set of <a href="http://lab.llvm.org:8011/console?category=polly">Polly
anatofuz
parents:
diff changeset
193 buildbots</a> has been extended. We now have 16 new blades that track
anatofuz
parents:
diff changeset
194 correctness and performance when compiling the LLVM test-suite. For now five
anatofuz
parents:
diff changeset
195 of them are used to provide <a
anatofuz
parents:
diff changeset
196 href="https://llvm.org/perf/db_default/v4/nts/22463">fine granularity
anatofuz
parents:
diff changeset
197 reports</a> (almost per-commit)
anatofuz
parents:
diff changeset
198 for 'clang -O3' (no polly). We also have six machines that track different
anatofuz
parents:
diff changeset
199 configurations of polly.
anatofuz
parents:
diff changeset
200 </td>
anatofuz
parents:
diff changeset
201 </tr>
anatofuz
parents:
diff changeset
202 <tr><td width="120"><p>January</p></td>
anatofuz
parents:
diff changeset
203 <td>
anatofuz
parents:
diff changeset
204 <h4>islplot released</h4>
anatofuz
parents:
diff changeset
205 <a href="https://github.com/tobig/islplot">islplot</a> is a library that
anatofuz
parents:
diff changeset
206 generates illustrations of integer sets and maps. It relies on <a
anatofuz
parents:
diff changeset
207 href="https://repo.or.cz/w/isl.git">isl</a> to model the integer sets and uses the <a
anatofuz
parents:
diff changeset
208 href="https://pypi.python.org/pypi/islpy">islpy</a> Python bindings to access
anatofuz
parents:
diff changeset
209 them. Plotting is performed with <a
anatofuz
parents:
diff changeset
210 href="https://matplotlib.org">matplotlib</a>. The following <a
anatofuz
parents:
diff changeset
211 href="https://nbviewer.ipython.org/github/tobig/islplot/blob/master/notebooks/islplot-examples.ipynb">
anatofuz
parents:
diff changeset
212 Examples</a> show its use.
anatofuz
parents:
diff changeset
213 </td>
anatofuz
parents:
diff changeset
214 </tr>
anatofuz
parents:
diff changeset
215 <tr><td><b>2013</b></td></tr>
anatofuz
parents:
diff changeset
216 <tr><td width="120"><p>November</p></td>
anatofuz
parents:
diff changeset
217 <td>
anatofuz
parents:
diff changeset
218 <h4>Loop optimization BoF at upcoming LLVM conference</h4>
anatofuz
parents:
diff changeset
219 At the upcoming <a href="https://llvm.org/devmtg/2013-11/#bof5">LLVM conference
anatofuz
parents:
diff changeset
220 </a> there will be a loop optimization BoF discussing Polly and other high
anatofuz
parents:
diff changeset
221 level loop optimizers.
anatofuz
parents:
diff changeset
222 </td>
anatofuz
parents:
diff changeset
223 </tr>
anatofuz
parents:
diff changeset
224 <tr><td width="120"><p>October</p></td>
anatofuz
parents:
diff changeset
225 <td>
anatofuz
parents:
diff changeset
226 <h4>Automatic code coverage and static analysis tests</h4>
anatofuz
parents:
diff changeset
227 Sylvestre Ledru set up automatic tests for <a
anatofuz
parents:
diff changeset
228 href="https://llvm.org/reports/coverage/">code coverage</a> and
anatofuz
parents:
diff changeset
229 <a href="https://llvm.org/reports/scan-build/">static analysis</a>
anatofuz
parents:
diff changeset
230 which run at least once a day and which include results for Polly.
anatofuz
parents:
diff changeset
231 <h4>Move to CLooG 0.18.1 and isl 0.12.1</h4>
anatofuz
parents:
diff changeset
232 With the move to an isl 0.12 version Polly can be compiled without the
anatofuz
parents:
diff changeset
233 need to link directly to GMP (if isl is used for code generation). Currently
anatofuz
parents:
diff changeset
234 isl is still internally using GMP, but private patches exist to also remove
anatofuz
parents:
diff changeset
235 this dependency. Without the use of GMP, a <b>GPL free</b> version of Polly
anatofuz
parents:
diff changeset
236 is possible.
anatofuz
parents:
diff changeset
237 </td></tr>
anatofuz
parents:
diff changeset
238
anatofuz
parents:
diff changeset
239 <tr><td><b>2012</b></td></tr>
anatofuz
parents:
diff changeset
240 <tr><td width="120"><p>December</p></td>
anatofuz
parents:
diff changeset
241 <td>
anatofuz
parents:
diff changeset
242 <h4> New publication in the PPL Journal
anatofuz
parents:
diff changeset
243 </h4>
anatofuz
parents:
diff changeset
244
anatofuz
parents:
diff changeset
245 We published a journal version of the Polly paper named
anatofuz
parents:
diff changeset
246 <em>
anatofuz
parents:
diff changeset
247 Polly - Performing polyhedral optimizations on a low-level intermediate
anatofuz
parents:
diff changeset
248 representation</em> in the Parallel Processing Letters 2012.
anatofuz
parents:
diff changeset
249 </td></tr>
anatofuz
parents:
diff changeset
250 <tr><td width="120"><p>September</p></td>
anatofuz
parents:
diff changeset
251 <td>
anatofuz
parents:
diff changeset
252 <h4>Experimental support for the <b>new isl code generator</b></h4>
anatofuz
parents:
diff changeset
253 The code generator can be parameterized on a fine-grained
anatofuz
parents:
diff changeset
254 level. It gives direct control for example over unrolling, the amount of
anatofuz
parents:
diff changeset
255 control overhead and the code size. It can also be used to
anatofuz
parents:
diff changeset
256 create loops to handle border conditions or to perform full-partial tile
anatofuz
parents:
diff changeset
257 separation.<br />
anatofuz
parents:
diff changeset
258 We also relicensed isl under the <b>MIT license</b>. This means, with the
anatofuz
parents:
diff changeset
259 exception of GMP (LGPL), there is no other (L)GPL licensed software used in
anatofuz
parents:
diff changeset
260 Polly. The
anatofuz
parents:
diff changeset
261 use of GMP is limited to a well defined interface. Replacing it with
anatofuz
parents:
diff changeset
262 a BSD licensed replacement is a tractable engineering project we would
anatofuz
parents:
diff changeset
263 be very interested in. For more information about isl see the <a
anatofuz
parents:
diff changeset
264 href="http://www.kotnet.org/~skimo/isl/manual.pdf">isl manual</a>.
anatofuz
parents:
diff changeset
265 </p>
anatofuz
parents:
diff changeset
266 </td></tr>
anatofuz
parents:
diff changeset
267 <tr><td width="120"><p>July</p></td>
anatofuz
parents:
diff changeset
268 <td>
anatofuz
parents:
diff changeset
269 <p> Polly can now be directly linked to the <a
anatofuz
parents:
diff changeset
270 href="http://pluto-compiler.sourceforge.net/">Pluto optimizer</a>. We were
anatofuz
parents:
diff changeset
271 already able to perform Pluto-like optimizations with Polly, as a similar
anatofuz
parents:
diff changeset
272 algorithm was added to isl half a year ago. However, being able to directly
anatofuz
parents:
diff changeset
273 compare with the original implementation will not only bring in competition in
anatofuz
parents:
diff changeset
274 the optimizer field. It will also allow new experiments with a cutting edge
anatofuz
parents:
diff changeset
275 research tool.<br \>
anatofuz
parents:
diff changeset
276 This support was on of the outcomes of the 1-day Polly workshop and the
anatofuz
parents:
diff changeset
277 following week of joint work at IISC Bangalore and in cooperation with
anatofuz
parents:
diff changeset
278 AMD India.
anatofuz
parents:
diff changeset
279 </td></tr>
anatofuz
parents:
diff changeset
280 <td>
anatofuz
parents:
diff changeset
281 </td></tr>
anatofuz
parents:
diff changeset
282 <tr><td width="120"><p>February</p></td>
anatofuz
parents:
diff changeset
283 <td>
anatofuz
parents:
diff changeset
284 <p>Polly is an official LLVM project, reachable at <a
anatofuz
parents:
diff changeset
285 href="https://polly.llvm.org">https://polly.llvm.org</a></p>
anatofuz
parents:
diff changeset
286 </td></tr>
anatofuz
parents:
diff changeset
287 <tr><td width="120"><p>January</p></td>
anatofuz
parents:
diff changeset
288 <td>
anatofuz
parents:
diff changeset
289 <p>Improved support for the isl scheduling optimizer</p>
anatofuz
parents:
diff changeset
290 Polly can now automatically optimize all <a
anatofuz
parents:
diff changeset
291 href="https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">polybench
anatofuz
parents:
diff changeset
292 2.0</a> kernels without the help of
anatofuz
parents:
diff changeset
293 an external optimizer. The compile time is reasonable and we can show
anatofuz
parents:
diff changeset
294 notable speedups for various kernels.
anatofuz
parents:
diff changeset
295 </td></tr>
anatofuz
parents:
diff changeset
296
anatofuz
parents:
diff changeset
297 <tr>
anatofuz
parents:
diff changeset
298 <tr><td><b><br/>2011</b></td></tr>
anatofuz
parents:
diff changeset
299 <tr><td width="120"><p>November</p></td>
anatofuz
parents:
diff changeset
300 <td>
anatofuz
parents:
diff changeset
301 <p>
anatofuz
parents:
diff changeset
302 Talk at the <a href="https://llvm.org/devmtg/2011-11/">
anatofuz
parents:
diff changeset
303 LLVM Developer Meeting 2011</a></p>
anatofuz
parents:
diff changeset
304 New SCEV parser<br>
anatofuz
parents:
diff changeset
305 (Allows parameters in array subscript and max/signextend)
anatofuz
parents:
diff changeset
306 </td></tr>
anatofuz
parents:
diff changeset
307
anatofuz
parents:
diff changeset
308 <tr>
anatofuz
parents:
diff changeset
309 <td><p>October</p></td>
anatofuz
parents:
diff changeset
310 <td>
anatofuz
parents:
diff changeset
311 <p>Polly can use the isl schedule optimizer<br>
anatofuz
parents:
diff changeset
312 (The optimizer is similar to the one in Pluto, but it is part of isl)
anatofuz
parents:
diff changeset
313 </p>
anatofuz
parents:
diff changeset
314 </td></tr>
anatofuz
parents:
diff changeset
315
anatofuz
parents:
diff changeset
316 <tr>
anatofuz
parents:
diff changeset
317 <td><p>August</p></td>
anatofuz
parents:
diff changeset
318 <td>
anatofuz
parents:
diff changeset
319 <p>
anatofuz
parents:
diff changeset
320 <a href="example_load_Polly_into_clang.html">Use Polly as
anatofuz
parents:
diff changeset
321 clang plugin</a></p>
anatofuz
parents:
diff changeset
322 </td>
anatofuz
parents:
diff changeset
323 </tr>
anatofuz
parents:
diff changeset
324
anatofuz
parents:
diff changeset
325 <tr>
anatofuz
parents:
diff changeset
326 <td><p>July</p></td>
anatofuz
parents:
diff changeset
327 <td>
anatofuz
parents:
diff changeset
328 <p> Polly builder as part of the <a
anatofuz
parents:
diff changeset
329 href="http://lab.llvm.org:8011/console">LLVM Buildbots</a>
anatofuz
parents:
diff changeset
330 </p>
anatofuz
parents:
diff changeset
331 </td>
anatofuz
parents:
diff changeset
332 </tr>
anatofuz
parents:
diff changeset
333
anatofuz
parents:
diff changeset
334 <tr>
anatofuz
parents:
diff changeset
335 <td><p>June</p></td>
anatofuz
parents:
diff changeset
336 <td>
anatofuz
parents:
diff changeset
337 <p><a href="https://www.grosser.es">Tobias</a> is founded for
anatofuz
parents:
diff changeset
338 three years by a <a
anatofuz
parents:
diff changeset
339 href="https://ai.google/research/outreach/phd-fellowship/recipients/?category=2011">
anatofuz
parents:
diff changeset
340 Google Europe Fellowship in Efficient Computing</a>.
anatofuz
parents:
diff changeset
341 </p>
anatofuz
parents:
diff changeset
342 </td>
anatofuz
parents:
diff changeset
343 </tr>
anatofuz
parents:
diff changeset
344
anatofuz
parents:
diff changeset
345 <tr>
anatofuz
parents:
diff changeset
346 <td><p>May </p></td>
anatofuz
parents:
diff changeset
347 <td><p><a href="https://www.grosser.es">Tobias</a>' diploma thesis and
anatofuz
parents:
diff changeset
348 Raghesh's master thesis. See our <a
anatofuz
parents:
diff changeset
349 href="publications.html">list of publications</a>.</p></td>
anatofuz
parents:
diff changeset
350 </tr>
anatofuz
parents:
diff changeset
351
anatofuz
parents:
diff changeset
352 <tr>
anatofuz
parents:
diff changeset
353 <td><p>April</p></td>
anatofuz
parents:
diff changeset
354 <td><p>Polly moves to the LLVM infrastructure (svn, bugtracker)</p></td>
anatofuz
parents:
diff changeset
355 </tr>
anatofuz
parents:
diff changeset
356
anatofuz
parents:
diff changeset
357 <tr>
anatofuz
parents:
diff changeset
358 <td><p>March</p></td>
anatofuz
parents:
diff changeset
359 <td><p>Presentation at <a
anatofuz
parents:
diff changeset
360 href="http://impact2011.inrialpes.fr/">CGO/IMPACT</a></p>
anatofuz
parents:
diff changeset
361 <p>Polly can compile
anatofuz
parents:
diff changeset
362 polybench 2.0 with vectorization and OpenMP code generation</p>
anatofuz
parents:
diff changeset
363 </td>
anatofuz
parents:
diff changeset
364 </tr>
anatofuz
parents:
diff changeset
365 <tr>
anatofuz
parents:
diff changeset
366 <td><p>Februar</p></td>
anatofuz
parents:
diff changeset
367 <td><p>pollycc - a script to automatically compile with
anatofuz
parents:
diff changeset
368 polyhedral optimizations </p></td>
anatofuz
parents:
diff changeset
369 </tr>
anatofuz
parents:
diff changeset
370
anatofuz
parents:
diff changeset
371 <tr>
anatofuz
parents:
diff changeset
372 <td><p> Januar</p></td>
anatofuz
parents:
diff changeset
373 <td><p> Basic OpenMP support, Alias analysis integration,
anatofuz
parents:
diff changeset
374 Pluto/POCC support </p></td>
anatofuz
parents:
diff changeset
375 </tr>
anatofuz
parents:
diff changeset
376
anatofuz
parents:
diff changeset
377 <tr><td><b><br>2010</b></td></tr>
anatofuz
parents:
diff changeset
378 <tr>
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
379 <td><p> December </p></td>
150
anatofuz
parents:
diff changeset
380 <td><p>Basic vectorization support </p></td>
anatofuz
parents:
diff changeset
381 </tr>
anatofuz
parents:
diff changeset
382
anatofuz
parents:
diff changeset
383 <tr>
anatofuz
parents:
diff changeset
384 <td><p> November </p></td>
anatofuz
parents:
diff changeset
385 <td><p>Talk at the <a
anatofuz
parents:
diff changeset
386 href="https://llvm.org/devmtg/2010-11/">LLVM Developer Meeting</a> </p></td>
anatofuz
parents:
diff changeset
387 </tr>
anatofuz
parents:
diff changeset
388
anatofuz
parents:
diff changeset
389 <tr>
anatofuz
parents:
diff changeset
390 <td><p>October</p></td>
anatofuz
parents:
diff changeset
391 <td><p>Dependency analysis </p>
anatofuz
parents:
diff changeset
392 <p>Finished Phase 1 - Get something working </p>
anatofuz
parents:
diff changeset
393 <p>Support scalar dependences and sequential SCoPs </p>
anatofuz
parents:
diff changeset
394 </td>
anatofuz
parents:
diff changeset
395 </tr>
anatofuz
parents:
diff changeset
396
anatofuz
parents:
diff changeset
397 <tr>
anatofuz
parents:
diff changeset
398 <td><p>August</p></td>
anatofuz
parents:
diff changeset
399 <td><p>RegionInfo pass committed to LLVM</p>
anatofuz
parents:
diff changeset
400 <p>llvm-test suite compiles </p>
anatofuz
parents:
diff changeset
401 </td>
anatofuz
parents:
diff changeset
402 </tr>
anatofuz
parents:
diff changeset
403
anatofuz
parents:
diff changeset
404 <tr>
anatofuz
parents:
diff changeset
405 <td><p>July</p></td>
anatofuz
parents:
diff changeset
406 <td><p>Code generation works for normal SCoPs. </p></td>
anatofuz
parents:
diff changeset
407 </tr>
anatofuz
parents:
diff changeset
408
anatofuz
parents:
diff changeset
409 <tr>
anatofuz
parents:
diff changeset
410 <td><p>May</p></td>
anatofuz
parents:
diff changeset
411 <td><p>The CLooG AST can be parsed.</p>
anatofuz
parents:
diff changeset
412 </td>
anatofuz
parents:
diff changeset
413 </tr>
anatofuz
parents:
diff changeset
414
anatofuz
parents:
diff changeset
415 <tr>
anatofuz
parents:
diff changeset
416 <td><p>April</p></td>
anatofuz
parents:
diff changeset
417 <td><p>SCoPs can automatically be detected. </p></td>
anatofuz
parents:
diff changeset
418 </tr>
anatofuz
parents:
diff changeset
419
anatofuz
parents:
diff changeset
420 <tr>
anatofuz
parents:
diff changeset
421 <td><p>March</p></td>
anatofuz
parents:
diff changeset
422 <td><p>The RegionInfo framework is almost completed. </p></td>
anatofuz
parents:
diff changeset
423 </tr>
anatofuz
parents:
diff changeset
424
anatofuz
parents:
diff changeset
425 <tr>
anatofuz
parents:
diff changeset
426 <td><p>February</p></td>
anatofuz
parents:
diff changeset
427 <td><p>Translate a simple loop to Polly-IR and regenerate a loop structure
anatofuz
parents:
diff changeset
428 with CLooG works. </p>
anatofuz
parents:
diff changeset
429 <p>ISL and CLooG are integrated. </p></td>
anatofuz
parents:
diff changeset
430 </tr>
anatofuz
parents:
diff changeset
431
anatofuz
parents:
diff changeset
432 </tr>
anatofuz
parents:
diff changeset
433
anatofuz
parents:
diff changeset
434 <tr>
anatofuz
parents:
diff changeset
435 <td><p>January</p></td>
anatofuz
parents:
diff changeset
436 <td><p>The RegionInfo pass is finished. </p></td>
anatofuz
parents:
diff changeset
437 </tr>
anatofuz
parents:
diff changeset
438
anatofuz
parents:
diff changeset
439 <tr><td><b><br>2009</b></td></tr>
anatofuz
parents:
diff changeset
440 <tr>
anatofuz
parents:
diff changeset
441 <td><p>End of the year</p></td>
anatofuz
parents:
diff changeset
442 <td><p>Work on the infrastructure started. </p></td>
anatofuz
parents:
diff changeset
443 </tr>
anatofuz
parents:
diff changeset
444 </table>
anatofuz
parents:
diff changeset
445 </ul>
anatofuz
parents:
diff changeset
446 </div>
anatofuz
parents:
diff changeset
447 </div>
anatofuz
parents:
diff changeset
448 </body>
anatofuz
parents:
diff changeset
449 </html>