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=
"http://llvm.org/bugs/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=
"http://llvm.org/bugs/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=
"http://llvm.org/bugs/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=
"http://llvm.org/bugs/show_bug.cgi?id=12403">Variable-size
278 multi-dimensional arrays
</a>
279 </th><td align=
"center" class='done'
> Done
284 href=
"http://llvm.org/bugs/show_bug.cgi?id=12407">Derive information for
288 <td align=
"center" class='nice'
> Open
292 <th align=
"left"> <a href=
"http://llvm.org/bugs/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=
"http://llvm.org/bugs/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=
"http://polly.llvm.org/documentation/gpgpucodegen.html">GPGPU Code
347 </th><td class=
"niceinprogress">in progress
353 href=
"http://polly.llvm.org/documentation/memaccess.html">Allow optimizers to
354 change memory access functions
</a>
355 </th><td class=
"done"> Done
359 <th align=
"left"> <a href=
"http://llvm.org/bugs/show_bug.cgi?id=12406">Make code
360 generation independent of the clast
</a>
361 </th><td class=
"done">Done
366 <tr><td colspan='
4'
> </td></tr>
367 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> General
</th></tr>
368 <tr style=
"background: rgb(239, 239, 239)">
369 <th width=
"400px"> Task
</th>
370 <th width=
"150px"> Status
</th>
374 <th align=
"left"> Teach bugpoint to extract regions
375 </th><td class=
"nice"> Open
379 <th align=
"left"> Add
<a
380 href=
"http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench
381 3.2</a> to the LLVM test suite
382 </th><td class=
"done"> Done
386 <th align=
"left"> Build against an installed LLVM
387 </th><td class=
"done"> Done
<br />
391 <th align=
"left"> Setup buildbot regression testers using LNT
392 </th><td class=
"done"> Done
396 <h3 id=
"llvm"> Polly as a LLVM Project (Finished February
2012)
</h3>
398 <table class=
"wikitable" cellpadding=
"2">
401 <tr style=
"background: rgb(239, 239, 239);">
407 <th align=
"left"> Move to LLVM SVN
408 </th><td class=
"done" align=
"center">
410 href=
"http://llvm.org/svn/llvm-project/polly"
411 >http://llvm.org/svn/llvm-project/polly
</a>
416 <th align=
"left"> Git mirror
417 </th><td class=
"done" align=
"center">
418 git://llvm.org/git/polly.git
422 <th align=
"left"> Commit mails
423 </th><td class=
"done" align=
"center">
424 llvm-commits@lists.llvm.org
429 <th align=
"left"> LLVM Bugzilla category
430 </th><td class=
"done" align=
"center">
431 <a href=
"http://llvm.org/bugs/enter_bug.cgi?product=Projects">LLVM Bugzilla
</a>
433 (Product is 'Projects', Component is 'Polly')
436 <th align=
"left"> Website
437 </th><td class=
"done" align=
"center">
438 <a href=
"http://polly.llvm.org">http://polly.llvm.org
</a>
442 <th align=
"left">Buildbot that runs 'make polly-test'
443 </th><td class=
"done" align=
"center">
444 <a href=
"http://lab.llvm.org:8011/console">Buildbot
</a>
452 <h3 id=
"phase2"> Phase
2 - First Optimizations and Enhanced User Experience (Finished
456 First optimizations to show the usefullness of Polly and enhance the user
457 experience. We also try to increase the amount of code we can optimize.
459 <table class=
"wikitable" cellpadding=
"2">
462 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Frontend
</th></tr>
463 <tr style=
"background: rgb(239, 239, 239)">
464 <th width=
"400px"> Task
</th>
465 <th width=
"150px"> Status
</th>
470 <th align=
"left"> Allow parameters in access functions
471 </th><td align=
"center" class='done'
> Done
476 <th align=
"left"> Improved Scalar Evolution parsing
477 </th><td align=
"center" class='done'
> Done
481 <th align=
"left"> (Graphical) user feedback on Scop Detection
482 </th><td align=
"center" class='done'
> Done
485 <tr><td colspan='
4'
> </td></tr>
486 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Optimizer
</th></tr>
487 <tr style=
"background: rgb(239, 239, 239)">
488 <th width=
"400px"> Task
</th>
489 <th width=
"150px"> Status
</th>
493 <th align=
"left"> Dependency Analysis
494 </th><td class=
"done" align=
"center"> Done
499 <th align=
"left"> Optimizer - Connect Pluto (through PoCC)
500 </th><td class=
"done" align=
"center"> Done
505 <th align=
"left"> Optimizer - Add ISL internal Pluto like optimizer
506 </th><td class=
"done" align=
"center"> Done
511 <th align=
"left"> Import/Export - SCoPLib
0.2 (needed for PoCC)
512 </th><td class=
"done" align=
"center">Done
516 <tr><td colspan='
4'
> </td></tr>
517 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Back End
</th></tr>
518 <tr style=
"background: rgb(239, 239, 239)">
519 <th width=
"400px"> Task
</th>
520 <th width=
"150px"> Status
</th>
524 <th align=
"left">SIMD code generation for trivially vectorizable loops
525 </th><td class=
"done">Done
529 <th align=
"left">OpenMP code generation
530 </th><td class=
"done">Done
531 </td><td> Raghesh, Tobias
535 <tr><td colspan='
4'
> </td></tr>
536 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> General
</th></tr>
537 <tr style=
"background: rgb(239, 239, 239)">
538 <th width=
"400px"> Task
</th>
539 <th width=
"150px"> Status
</th>
543 <th align=
"left"> clang integration
544 </th><td class=
"done" align=
"center"> done
549 <th align=
"left"> Commit RegionPass patch upstream
550 </th><td class=
"done" align=
"center"> done
556 <h3 id=
"phase1">Phase
1 - Get Something Working (Finished October
2010)
</h3>
557 <p>Create a minimal version of Polly that can transform an LLVM-IR program to
558 the polyhedral model and back to LLVM-IR. No transformations are performed.
560 <table class=
"wikitable" cellpadding=
"2">
563 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Front End
</th></tr>
564 <tr style=
"background: rgb(239, 239, 239)">
565 <th width=
"400px"> Task
</th>
566 <th width=
"150px"> Status
</th>
570 <th align=
"left"> Region detection
571 </td><td class=
"done"> Done
575 <th align=
"left"> Access Functions
576 </td><td class=
"done"> Done
580 <th align=
"left"> Alias sets
581 </td><td class=
"done"> Done
585 <th align=
"left"> Scalar evolution to affine expression
586 </td><td class=
"done"> Done
592 <th align=
"left"> SCoP extraction
593 </td><td class=
"done"> Done
594 </td><td>Tobias, Ether
598 <th align=
"left"> SCoPs to polyhedral model
599 </td><td class=
"done"> Done
600 </td><td>Tobias, Ether
602 <tr><td colspan='
4'
> </td></tr>
603 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Optimizer
</th></tr>
604 <tr style=
"background: rgb(239, 239, 239)">
605 <th width=
"400px"> Task
</th>
606 <th width=
"150px"> Status
</th>
610 <th align=
"left"> Define polyhedral description
611 </td><td class=
"done"> Done
615 <tr><td colspan='
4'
> </td></tr>
616 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> Back End
</th></tr>
617 <tr style=
"background: rgb(239, 239, 239)">
618 <th width=
"400px"> Task
</th>
619 <th width=
"150px"> Status
</th>
623 <th align=
"left"> Create LLVM-IR using CLooG
624 </td><td class=
"done"> Done
628 <tr><td colspan='
4'
> </td></tr>
629 <tr><th colspan=
"3" style=
"background: rgb(239, 239, 239);"> General
</th></tr>
630 <tr style=
"background: rgb(239, 239, 239)">
631 <th width=
"400px"> Task
</th>
632 <th width=
"150px"> Status
</th>
636 <th align=
"left"> Setup git repositories
638 </td><td class=
"done"> Done
642 <th align=
"left"> Add CLooG/isl to build system
643 </td><td class=
"done"> Done