1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3 <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
5 <head> <META http-equiv=
"Content-Type" content=
"text/html; charset=ISO-8859-1">
6 <title>Polly - Todo
</title>
7 <link type=
"text/css" rel=
"stylesheet" href=
"menu.css">
8 <link type=
"text/css" rel=
"stylesheet" href=
"content.css">
12 <!--#include virtual="menu.html.incl"-->
18 <li><a href=
"#phase3">Phase
4</a></li>
19 <li><a href=
"#phase3">Phase
3 - Improve Robustness, Interoperability and
20 Optimizations (ongoing)
</a></li>
21 <li><a href=
"#llvm">Polly as a LLVM Project (Finished February
2012)
</a></li>
22 <li><a href=
"#phase2">Phase
2 - First Optimizations and Enhanced User Experience (Finished
23 February
2012)
</a></li>
24 <li><a href=
"#phase1">Phase
1 - Get Something Working (Finished October
2010)
</a>
27 <h2> Individual Phases
</h3>
29 <h3 id=
"phase4"> Phase
4</h3>
30 <table class=
"wikitable" cellpadding=
"2">
34 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Infrastructure
</th></tr>
35 <tr style=
"background: rgb(239, 239, 239)">
36 <th width=
"400px"> Task
</th>
37 <th width=
"150px"> Status
</th>
41 <th align=
"left"> Move to isl C++ bindings
42 </th><td align=
"center" class='open'
> Open
46 <th align=
"left"> - Add isl C++ bindings generator to isl
47 </th><td align=
"center" class='open'
> Open
52 <th align=
"left"> Add isl as an external library to Polly SVN
53 </th><td align=
"center" class='done'
> Done
58 <th align=
"left"> Compile-time: Speed up transformations
59 </th><td align=
"center">
63 <th align=
"left"> - Optimize isl_int for small integers
64 </th><td align=
"center" class='done'
> Done
69 <th align=
"left"> Compile-time: Minimize SCoP detection time
70 </th><td align=
"center" class='open'
> Open
74 <th align=
"left"> - Reconsider pass-ordering (move Polly later)
75 </th><td align=
"center" class='open'
> Open
80 <tr><td colspan='
4'
> </td></tr>
81 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Increase coverage
83 <tr style=
"background: rgb(239, 239, 239)">
84 <th width=
"400px"> Task
</th>
85 <th width=
"150px"> Status
</th>
92 </th><td align=
"center" class='done'
> Done
98 </th><td align=
"center" class='done'
> Done
104 </th><td align=
"center" class='done'
> Done
110 </th><td align=
"center" class='done'
> Done
115 Non-affine subregions
116 </th><td align=
"center" class='done'
> Done
120 <tr><td colspan='
4'
> </td></tr>
121 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Polly as an
123 <tr style=
"background: rgb(239, 239, 239)">
124 <th width=
"400px"> Task
</th>
125 <th width=
"150px"> Status
</th>
131 Model scalars dependences directly in Polly
132 </th><td align=
"center" class='done'
> Done
137 Code generate scalar dependences
138 </th><td align=
"center" class='done'
> Done
143 Model PHI dependences directly in Polly
144 </th><td align=
"center" class='done'
> Done
149 Code generate PHI dependences
150 </th><td align=
"center" class='done'
> Done
154 <th align=
"left"> <a href=
"https://bugs.llvm.org/show_bug.cgi?id=12398">Remove
155 the need for independent blocks
</a>
156 </th><td class=
"done"> Done
161 Remove polly-prepare pass
162 </th><td align=
"center" class='open'
> Open
166 <tr><td colspan='
4'
> </td></tr>
167 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Correctness in
168 cornercases
</th></tr>
169 <tr style=
"background: rgb(239, 239, 239)">
170 <th width=
"400px"> Task
</th>
171 <th width=
"150px"> Status
</th>
175 <th align=
"left"> <a href=
"https://bugs.llvm.org/show_bug.cgi?id=10381">Derive
176 optimal types (instead of always using i64)
</a>
177 </th><td class=
"open"> Open
181 <th align=
"left"> <a href=
"https://bugs.llvm.org/show_bug.cgi?id=12397">Model
183 </th><td align=
"center" class='done'
> Done
187 <tr><td colspan='
4'
> </td></tr>
188 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Optimize Julia
191 <tr style=
"background: rgb(239, 239, 239)">
192 <th width=
"400px"> Task
</th>
193 <th width=
"150px"> Status
</th>
198 Integrate Polly into Julia
199 </th><td align=
"center" class='open'
> Open
204 Eliminate run-time bounds checks
205 </th><td align=
"center" class='open'
> Open
209 <th align=
"left"> - Reconsider unreachables in post-dominance tree
210 </th><td align=
"center" class='open'
> Open
214 <th align=
"left"> - Actually eliminate statements
215 </th><td align=
"center" class='done'
> Done
219 <tr><td colspan='
4'
> </td></tr>
220 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Improved
221 Optimizations in Polly
223 <tr style=
"background: rgb(239, 239, 239)">
224 <th width=
"400px"> Task
</th>
225 <th width=
"150px"> Status
</th>
231 </th><td align=
"center" class='open'
> Open
237 </th><td align=
"center" class='open'
> Open
242 Full/partial tile separation for vectorization
243 </th><td align=
"center" class='done'
> Done
247 Loop interchange after vectorization to maximize stride-one accesses
248 </th><td align=
"center" class='open'
> Open
254 <h3 id=
"phase3"> Phase
3 - Improve Robustness, Interoperability and
255 Optimizations (ongoing)
</h3>
256 <table class=
"wikitable" cellpadding=
"2">
260 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Frontend
</th></tr>
261 <tr style=
"background: rgb(239, 239, 239)">
262 <th width=
"400px"> Task
</th>
263 <th width=
"150px"> Status
</th>
267 <th align=
"left"> Non-affine access functions
268 </th><td align=
"center" class='done'
> Done, needs testing
277 href=
"https://bugs.llvm.org/show_bug.cgi?id=12403">Variable-size
278 multi-dimensional arrays
</a>
279 </th><td align=
"center" class='done'
> Done
284 href=
"https://bugs.llvm.org/show_bug.cgi?id=12407">Derive information for
288 <td align=
"center" class='nice'
> Open
292 <th align=
"left"> <a href=
"https://bugs.llvm.org/show_bug.cgi?id=12402">Finer
293 grained statements
</a>
294 </th><td align=
"center" class='nice'
> Open
298 <th align=
"left"> Detect reductions
299 </th><td align=
"center" class='done'
>Done
303 <th align=
"left"> Generate code for reductions
304 </th><td align=
"center" class='niceinprogress'
>in progress
308 <th align=
"left"> Assume static sized arrays are only accessed in-bounds
309 </th><td align=
"center" class='done'
>Done
312 <tr><td colspan='
4'
> </td></tr>
313 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Optimizer
</th></tr>
314 <tr style=
"background: rgb(239, 239, 239)">
315 <th width=
"400px"> Task
</th>
316 <th width=
"150px"> Status
</th>
320 <th align=
"left"> <a href=
"https://bugs.llvm.org/show_bug.cgi?id=12405">Polyhedral
321 dead code elimination
</a>
322 </th><td class=
"done">Done
326 <tr><td colspan='
4'
> </td></tr>
327 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Back End
</th></tr>
328 <tr style=
"background: rgb(239, 239, 239)">
329 <th width=
"400px"> Task
</th>
330 <th width=
"150px"> Status
</th>
334 <th align=
"left"> OpenMP code generation support in isl backend
335 (requirement to drop CLooG)
336 </th><td class=
"done"> Done
340 <th align=
"left"> Run-time alias checks
341 </th><td class=
"done"> Done
345 href=
"https://polly.llvm.org/documentation/memaccess.html">Allow optimizers to
346 change memory access functions
</a>
347 </th><td class=
"done"> Done
351 <th align=
"left"> <a href=
"https://bugs.llvm.org/show_bug.cgi?id=12406">Make code
352 generation independent of the clast
</a>
353 </th><td class=
"done">Done
358 <tr><td colspan='
4'
> </td></tr>
359 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> General
</th></tr>
360 <tr style=
"background: rgb(239, 239, 239)">
361 <th width=
"400px"> Task
</th>
362 <th width=
"150px"> Status
</th>
366 <th align=
"left"> Teach bugpoint to extract regions
367 </th><td class=
"nice"> Open
371 <th align=
"left"> Add
<a
372 href=
"https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">Polybench
373 3.2</a> to the LLVM test suite
374 </th><td class=
"done"> Done
378 <th align=
"left"> Build against an installed LLVM
379 </th><td class=
"done"> Done
<br />
383 <th align=
"left"> Setup buildbot regression testers using LNT
384 </th><td class=
"done"> Done
388 <h3 id=
"llvm"> Polly as a LLVM Project (Finished February
2012)
</h3>
390 <table class=
"wikitable" cellpadding=
"2">
393 <tr style=
"background: rgb(239, 239, 239);">
399 <th align=
"left"> Move to LLVM SVN
400 </th><td class=
"done" align=
"center">
402 href=
"https://llvm.org/svn/llvm-project/polly"
403 >https://llvm.org/svn/llvm-project/polly
</a>
408 <th align=
"left"> Commit mails
409 </th><td class=
"done" align=
"center">
410 llvm-commits@lists.llvm.org
415 <th align=
"left"> LLVM Bugzilla category
416 </th><td class=
"done" align=
"center">
417 <a href=
"https://bugs.llvm.org/enter_bug.cgi?product=Projects">LLVM Bugzilla
</a>
419 (Product is 'Projects', Component is 'Polly')
422 <th align=
"left"> Website
423 </th><td class=
"done" align=
"center">
424 <a href=
"https://polly.llvm.org">https://polly.llvm.org
</a>
428 <th align=
"left">Buildbot that runs 'make polly-test'
429 </th><td class=
"done" align=
"center">
430 <a href=
"http://lab.llvm.org:8011/console">Buildbot
</a>
438 <h3 id=
"phase2"> Phase
2 - First Optimizations and Enhanced User Experience (Finished
442 First optimizations to show the usefulness of Polly and enhance the user
443 experience. We also try to increase the amount of code we can optimize.
445 <table class=
"wikitable" cellpadding=
"2">
448 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Frontend
</th></tr>
449 <tr style=
"background: rgb(239, 239, 239)">
450 <th width=
"400px"> Task
</th>
451 <th width=
"150px"> Status
</th>
456 <th align=
"left"> Allow parameters in access functions
457 </th><td align=
"center" class='done'
> Done
462 <th align=
"left"> Improved Scalar Evolution parsing
463 </th><td align=
"center" class='done'
> Done
467 <th align=
"left"> (Graphical) user feedback on Scop Detection
468 </th><td align=
"center" class='done'
> Done
471 <tr><td colspan='
4'
> </td></tr>
472 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Optimizer
</th></tr>
473 <tr style=
"background: rgb(239, 239, 239)">
474 <th width=
"400px"> Task
</th>
475 <th width=
"150px"> Status
</th>
479 <th align=
"left"> Dependency Analysis
480 </th><td class=
"done" align=
"center"> Done
485 <th align=
"left"> Optimizer - Connect Pluto (through PoCC)
486 </th><td class=
"done" align=
"center"> Done
491 <th align=
"left"> Optimizer - Add ISL internal Pluto like optimizer
492 </th><td class=
"done" align=
"center"> Done
497 <th align=
"left"> Import/Export - SCoPLib
0.2 (needed for PoCC)
498 </th><td class=
"done" align=
"center">Done
502 <tr><td colspan='
4'
> </td></tr>
503 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Back End
</th></tr>
504 <tr style=
"background: rgb(239, 239, 239)">
505 <th width=
"400px"> Task
</th>
506 <th width=
"150px"> Status
</th>
510 <th align=
"left">SIMD code generation for trivially vectorizable loops
511 </th><td class=
"done">Done
515 <th align=
"left">OpenMP code generation
516 </th><td class=
"done">Done
517 </td><td> Raghesh, Tobias
521 <tr><td colspan='
4'
> </td></tr>
522 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> General
</th></tr>
523 <tr style=
"background: rgb(239, 239, 239)">
524 <th width=
"400px"> Task
</th>
525 <th width=
"150px"> Status
</th>
529 <th align=
"left"> clang integration
530 </th><td class=
"done" align=
"center"> done
535 <th align=
"left"> Commit RegionPass patch upstream
536 </th><td class=
"done" align=
"center"> done
542 <h3 id=
"phase1">Phase
1 - Get Something Working (Finished October
2010)
</h3>
543 <p>Create a minimal version of Polly that can transform an LLVM-IR program to
544 the polyhedral model and back to LLVM-IR. No transformations are performed.
546 <table class=
"wikitable" cellpadding=
"2">
549 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Front End
</th></tr>
550 <tr style=
"background: rgb(239, 239, 239)">
551 <th width=
"400px"> Task
</th>
552 <th width=
"150px"> Status
</th>
556 <th align=
"left"> Region detection
557 </td><td class=
"done"> Done
561 <th align=
"left"> Access Functions
562 </td><td class=
"done"> Done
566 <th align=
"left"> Alias sets
567 </td><td class=
"done"> Done
571 <th align=
"left"> Scalar evolution to affine expression
572 </td><td class=
"done"> Done
578 <th align=
"left"> SCoP extraction
579 </td><td class=
"done"> Done
580 </td><td>Tobias, Ether
584 <th align=
"left"> SCoPs to polyhedral model
585 </td><td class=
"done"> Done
586 </td><td>Tobias, Ether
588 <tr><td colspan='
4'
> </td></tr>
589 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Optimizer
</th></tr>
590 <tr style=
"background: rgb(239, 239, 239)">
591 <th width=
"400px"> Task
</th>
592 <th width=
"150px"> Status
</th>
596 <th align=
"left"> Define polyhedral description
597 </td><td class=
"done"> Done
601 <tr><td colspan='
4'
> </td></tr>
602 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Back End
</th></tr>
603 <tr style=
"background: rgb(239, 239, 239)">
604 <th width=
"400px"> Task
</th>
605 <th width=
"150px"> Status
</th>
609 <th align=
"left"> Create LLVM-IR using CLooG
610 </td><td class=
"done"> Done
614 <tr><td colspan='
4'
> </td></tr>
615 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> General
</th></tr>
616 <tr style=
"background: rgb(239, 239, 239)">
617 <th width=
"400px"> Task
</th>
618 <th width=
"150px"> Status
</th>
622 <th align=
"left"> Setup git repositories
624 </td><td class=
"done"> Done
628 <th align=
"left"> Add CLooG/isl to build system
629 </td><td class=
"done"> Done