Polly: Polyhedral optimizations for LLVM

Polly is a project that works on advanced optimizations for data-locality and parallelism. It uses the polyhedral model, a high-level mathematical abstraction, to analyse and optimize the memory access pattern of a program. Due to the use of a polyhedral representation Polly can easily calculate detailed data dependency information which it uses to derive an optimized loop structure. Polly can speed up sequential code by improving memory locality and consequently the cache use. Furthermore, Polly is able to expose different kinds of parallelism which it exploits by introducing (basic) OpenMP and SIMD code. The automatic use of vector accelerators is planned and will take avantage of the ongoing work on the LLVM PTX backend.

Polly is still a research project, that is not production quality. We are working on a robust implementation of Polly's core. You are invited to join us by directly contributing to Polly or by using it for your own research.

Major changes in Polly

The architecture of Polly