POLLY — PERFORMING POLYHEDRAL OPTIMIZATIONS ON A LOW-LEVEL INTERMEDIATE REPRESENTATION
Top Cited Papers
- 27 December 2012
- journal article
- research article
- Published by World Scientific Pub Co Pte Ltd in Parallel Processing Letters
- Vol. 22 (04)
- https://doi.org/10.1142/s0129626412500107
Abstract
The polyhedral model for loop parallelization has proved to be an effective tool for advanced optimization and automatic parallelization of programs in higher-level languages. Yet, to integrate such optimizations seamlessly into production compilers, they must be performed on the compiler's internal, low-level, intermediate representation (IR). With Polly, we present an infrastructure for polyhedral optimizations on such an IR. We describe the detection of program parts amenable to a polyhedral optimization (so-called static control parts), their translation to a Z-polyhedral representation, optimizations on this representation and the generation of optimized IR code. Furthermore, we define an interface for connecting external optimizers and present a novel way of using the parallelism they introduce to generate SIMD and OpenMP code. To evaluate Polly, we compile the PolyBench 2.0 benchmarks fully automatically with PLuTo as external optimizer and parallelizer. We can report on significant speedups.Keywords
This publication has 7 references indexed in Scilit:
- Semi-Automatic Composition of Loop Transformations for Deep Parallelism and Memory HierarchiesInternational Journal of Parallel Programming, 2006
- Programmable stream processorsComputer, 2003
- Precise Data Locality Optimization of Nested LoopsThe Journal of Supercomputing, 2002
- Generation of Efficient Nested Loops from PolyhedraInternational Journal of Parallel Programming, 2000
- Index Set SplittingInternational Journal of Parallel Programming, 2000
- SUIFACM SIGPLAN Notices, 1994
- Dataflow analysis of array and scalar referencesInternational Journal of Parallel Programming, 1991