| <!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 - Todo</title> |
| <link type="text/css" rel="stylesheet" href="menu.css"> |
| <link type="text/css" rel="stylesheet" href="content.css"> |
| </head> |
| <body> |
| <!--#include virtual="menu.html.incl"--> |
| <div id="content"> |
| |
| <h2> Overview</h3> |
| <ul> |
| <li><a href="#phase3">Phase 3 - Improve Robustness, Interoperability and |
| Optimizations (ongoing)</a></li> |
| <li><a href="#llvm">Polly as a LLVM Project (Finished February 2012)</a></li> |
| <li><a href="#phase2">Phase 2 - First Optimizations and Enhanced User Experience (Finished |
| February 2012)</a></li> |
| <li><a href="#phase1">Phase 1 - Get Something Working (Finished October 2010)</a> |
| </li> |
| </ul> |
| <h2> Individual Phases</h3> |
| |
| <h3 id="phase3"> Phase 3 - Improve Robustness, Interoperability and |
| Optimizations (ongoing)</h3> |
| <table class="wikitable" cellpadding="2"> |
| <p> </p> |
| |
| <tbody> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Frontend </th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <tr> |
| <tr> |
| <th align="left"> Non-affine access functions |
| </th><td align="center" class='done'> Done, needs testing |
| </td><td>Marcello |
| </td></tr> |
| <th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12402">Finer |
| grained statements</a> |
| </th><td align="center" class='open'>Open |
| </td><td> |
| </td></tr> |
| |
| <tr> |
| <th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12397">Model |
| integer wrapping</a> |
| </th><td align="center" class='open'> Open |
| </td><td> |
| </td></tr> |
| <tr> |
| <th align="left"> <a |
| href="http://llvm.org/bugs/show_bug.cgi?id=12403">Variable-size |
| multi-dimensional arrays</a> |
| </th><td align="center" class='open'> Open |
| </td><td> |
| </td></tr> |
| <th align="left"> <a |
| href="http://llvm.org/bugs/show_bug.cgi?id=12407">Derive information for |
| the SCoP context |
| </a> |
| </th><td align="center" class='open'> Open |
| </td><td> |
| </td></tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Optimizer </th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12405">Polyhedral |
| dead code elimination</a> |
| </th><td class="open">Open |
| </td><td> |
| </td></tr> |
| <th align="left"> <a |
| href="http://llvm.org/bugs/show_bug.cgi?id=10229">OpenSCoP Import/Export - Update to |
| current version</a> |
| </th><td class="open">Open |
| </td><td> |
| </td></tr> |
| |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Back End</th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <th align="left"> <a |
| href="http://polly.llvm.org/documentation/memaccess.html">Allow optimizers to |
| change memory access functions</a> |
| </th><td class="inprogress">10% done |
| </td><td> |
| </td><td> |
| |
| </td></tr> |
| <tr> |
| <th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=10381">Derive |
| optimal types (instead of always using i64)</a> |
| </th><td class="open"> Requires code generator support |
| </td><td> |
| </td></tr> |
| <tr> |
| <th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12398">Remove |
| the need for independent blocks</a> |
| </th><td class="open"> Open |
| </td><td> |
| </td></tr> |
| <tr> |
| <th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12406">Make code |
| generation independent of the clast</a> |
| </th><td class="open">Open |
| </td><td> |
| </td></tr> |
| <tr> |
| <th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12404">Integrate |
| with the LLVM BBVectorizer</a> |
| </th><td class="open">Open |
| </td><td> |
| </td></tr> |
| <tr> |
| <th align="left"> <a |
| href="http://polly.llvm.org/documentation/gpgpucodegen.html">GPGPU Code |
| Generation</a> |
| </th><td class="inprogress">In Design |
| </td><td> |
| </td></tr> |
| |
| <tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> General</th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left"> Add FORTRAN Support to the LLVM test suite |
| </th><td class="open"> Open |
| </td><td> |
| </td></tr> |
| <th align="left"> Add <a |
| href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench |
| 3.2</a> to the LLVM test suite |
| </th><td class="open"> Open |
| </td><td> |
| </td></tr> |
| <tr> |
| <th align="left"> Build against an installed LLVM |
| </th><td class="inprogress"> Partial <br />(cmake only, no tests) |
| </td><td> |
| </td></tr> |
| <tr> |
| <th align="left"> Setup buildbot regression testers using LNT |
| </th><td class="inprogress"> In progress |
| </td><td> Tobias |
| </td></tr> |
| </tbody></table> |
| <h3 id="llvm"> Polly as a LLVM Project (Finished February 2012)</h3> |
| |
| <table class="wikitable" cellpadding="2"> |
| |
| <tbody> |
| <tr style="background: rgb(239, 239, 239);"> |
| <th>Task |
| </th><th> Status |
| </th><th>Owner |
| </th></tr> |
| <tr> |
| <th align="left"> Move to LLVM SVN |
| </th><td class="done" align="center"> |
| <a |
| href="http://llvm.org/svn/llvm-project/polly" |
| >http://llvm.org/svn/llvm-project/polly</a> |
| </td><td> Tobias |
| |
| </td></tr> |
| <tr> |
| <th align="left"> Git mirror |
| </th><td class="done" align="center"> |
| git://llvm.org/git/polly.git |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| <th align="left"> Commit mails |
| </th><td class="done" align="center"> |
| llvm-commits@cs.uiuc.edu |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| |
| <th align="left"> LLVM Bugzilla category |
| </th><td class="done" align="center"> |
| <a href="http://llvm.org/bugs/enter_bug.cgi?product=Projects">LLVM Bugzilla</a> |
| <br /> |
| (Product is 'Projects', Component is 'Polly') |
| </td><td> Tobias |
| <tr> |
| <th align="left"> Website |
| </th><td class="done" align="center"> |
| <a href="http://polly.llvm.org">http://polly.llvm.org</a> |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| <th align="left">Buildbot that runs 'make polly-test' |
| </th><td class="done" align="center"> |
| <a href="http://lab.llvm.org:8011/console">Buildbot</a> |
| </td> |
| <td> Tobias, Andreas |
| </td></tr> |
| </th><td> |
| |
| </td></tr> |
| </tbody></table> |
| <h3 id="phase2"> Phase 2 - First Optimizations and Enhanced User Experience (Finished |
| February 2012)</h3> |
| <p> |
| |
| First optimizations to show the usefullness of Polly and enhance the user |
| experience. We also try to increase the amount of code we can optimize. |
| </p> |
| <table class="wikitable" cellpadding="2"> |
| |
| <tbody> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Frontend </th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <tr> |
| <th align="left"> Allow parameters in access functions |
| </th><td align="center" class='done'> Done |
| </td><td> Tobias |
| </td></tr> |
| |
| <tr> |
| <th align="left"> Improved Scalar Evolution parsing |
| </th><td align="center" class='done'> Done |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| <th align="left"> (Graphical) user feedback on Scop Detection |
| </th><td align="center" class='done'> Done |
| </td><td> Tobias |
| </td></tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Optimizer </th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left"> Dependency Analysis |
| </th><td class="done" align="center"> Done |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| <tr> |
| <th align="left"> Optimizer - Connect Pluto (through PoCC) |
| </th><td class="done" align="center"> Done |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| <tr> |
| <th align="left"> Optimizer - Add ISL internal Pluto like optimizer |
| </th><td class="done" align="center"> Done |
| </td><td> Tobias |
| </td></tr> |
| |
| <tr> |
| <th align="left"> Import/Export - SCoPLib 0.2 (needed for PoCC) |
| </th><td class="done" align="center">Done |
| |
| </td><td> Tobias |
| </td></tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Back End</th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left">SIMD code generation for trivially vectorizable loops |
| </th><td class="done">Done |
| </td><td>Tobias |
| </td></tr> |
| <tr> |
| <th align="left">OpenMP code generation |
| </th><td class="done">Done |
| </td><td> Raghesh, Tobias |
| |
| </td></tr> |
| <tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> General</th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left"> clang integration |
| </th><td class="done" align="center"> done |
| |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| <th align="left"> Commit RegionPass patch upstream |
| </th><td class="done" align="center"> done |
| |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| </tbody></table> |
| <h3 id="phase1">Phase 1 - Get Something Working (Finished October 2010)</h3> |
| <p>Create a minimal version of Polly that can transform an LLVM-IR program to |
| the polyhedral model and back to LLVM-IR. No transformations are performed. |
| </p> |
| <table class="wikitable" cellpadding="2"> |
| |
| <tbody> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Front End</th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| |
| <th align="left"> Region detection |
| </td><td class="done"> Done |
| </td><td>Ether |
| </td></tr> |
| <tr> |
| <th align="left"> Access Functions |
| </td><td class="done"> Done |
| </td><td>John, Ether |
| </td></tr> |
| <tr> |
| <th align="left"> Alias sets |
| </td><td class="done"> Done |
| </td><td>Ether |
| </td></tr> |
| <tr> |
| <th align="left"> Scalar evolution to affine expression |
| </td><td class="done"> Done |
| |
| </td><td> |
| Ether |
| </td></tr> |
| <tr> |
| <th align="left"> SCoP extraction |
| </td><td class="done"> Done |
| </td><td>Tobias, Ether |
| |
| </td></tr> |
| <tr> |
| <th align="left"> SCoPs to polyhedral model |
| </td><td class="done"> Done |
| </td><td>Tobias, Ether |
| </td></tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Optimizer </th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left"> Define polyhedral description |
| </td><td class="done"> Done |
| </td><td>Tobias |
| |
| </td></tr> |
| <tr> |
| <th align="left"> Import/Export using current openscop version |
| </td><td class="done"> Done |
| </td><td>Tobias |
| </td></tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Back End</th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left"> Create LLVM-IR using CLooG |
| </td><td class="done"> Done |
| </td><td> Tobias |
| |
| </td></tr> |
| <tr><td colspan='4'> </td></tr> |
| <tr><th colspan="3" style="background: rgb(239, 239, 239);"> General</th></tr> |
| <tr style="background: rgb(239, 239, 239)"> |
| <th width="400px"> Task </th> |
| <th width="150px"> Status </th> |
| <th> Owner </th> |
| </tr> |
| <tr> |
| <th align="left"> Setup git repositories |
| |
| </td><td class="done"> Done |
| </td><td> Tobias |
| </td></tr> |
| <tr> |
| <th align="left"> Add CLooG/isl to build system |
| </td><td class="done"> Done |
| </td><td> Tobias |
| |
| </td></tr></tbody></table> |
| </div> |
| </body> |
| </html> |