TODO

Overview

Individual Phases

Phase 3 - Improve Robustness, Interoperability and Optimizations (ongoing)

Frontend
Task Status Owner
Non-affine access functions Done, needs testing Marcello
Model integer wrapping Open
Variable-size multi-dimensional arrays Done Sebastian
Derive information for the SCoP context Open
Finer grained statements Open
Detect reductions Done Johannes
Generate code for reductions in progress Johannes
Assume static sized arrays are only accessed in-bounds Done Tobias
 
Optimizer
Task Status Owner
Polyhedral dead code elimination Done
OpenSCoP Import/Export Open
 
Back End
Task Status Owner
OpenMP code generation support in isl backend (requirement to drop CLooG) Done Tobias
Support for scalars/PHIs directly in the code generation (requirement to remove polly independent) in progress Tobias/Johannes
Remove the need for independent blocks Open
Run-time alias checks Done Johannes
Derive optimal types (instead of always using i64) in progress Tobias
GPGPU Code Generation in progress Yabin
Allow optimizers to change memory access functions Done Johannes
Make code generation independent of the clast Done
 
General
Task Status Owner
Teach bugpoint to extract regions Open
Add Polybench 3.2 to the LLVM test suite Done
Build against an installed LLVM Done
Setup buildbot regression testers using LNT Done Tobias

Polly as a LLVM Project (Finished February 2012)

Task Status Owner
Move to LLVM SVN http://llvm.org/svn/llvm-project/polly Tobias
Git mirror git://llvm.org/git/polly.git Tobias
Commit mails llvm-commits@cs.uiuc.edu Tobias
LLVM Bugzilla category LLVM Bugzilla
(Product is 'Projects', Component is 'Polly')
Tobias
Website http://polly.llvm.org Tobias
Buildbot that runs 'make polly-test' Buildbot Tobias, Andreas

Phase 2 - First Optimizations and Enhanced User Experience (Finished February 2012)

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.

Frontend
Task Status Owner
Allow parameters in access functions Done Tobias
Improved Scalar Evolution parsing Done Tobias
(Graphical) user feedback on Scop Detection Done Tobias
 
Optimizer
Task Status Owner
Dependency Analysis Done Tobias
Optimizer - Connect Pluto (through PoCC) Done Tobias
Optimizer - Add ISL internal Pluto like optimizer Done Tobias
Import/Export - SCoPLib 0.2 (needed for PoCC) Done Tobias
 
Back End
Task Status Owner
SIMD code generation for trivially vectorizable loops Done Tobias
OpenMP code generation Done Raghesh, Tobias
 
General
Task Status Owner
clang integration done Tobias
Commit RegionPass patch upstream done Tobias

Phase 1 - Get Something Working (Finished October 2010)

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.

Front End
Task Status Owner
Region detection Done Ether
Access Functions Done John, Ether
Alias sets Done Ether
Scalar evolution to affine expression Done Ether
SCoP extraction Done Tobias, Ether
SCoPs to polyhedral model Done Tobias, Ether
 
Optimizer
Task Status Owner
Define polyhedral description Done Tobias
 
Back End
Task Status Owner
Create LLVM-IR using CLooG Done Tobias
 
General
Task Status Owner
Setup git repositories Done Tobias
Add CLooG/isl to build system Done Tobias