PoCC  Version 1.0
PoCC

PoCC: the Polyhedral Compiler Collection

Author:
Louis-Noël Pouchet <louis-noel.pouchet@inria.fr>

Introduction

PoCC is a flexible source-to-source iterative and model-driven compiler, embedding most of the state-of-the-art tools for polyhedral compilation. The main features are:

  • a full-flavored compiler, from C code to optimized C code
  • the state-of-the art techniques in polyhedral optimization (iterative search among legal schedules, powerful model-driven tiling and parallelization)
  • a flexible platform to quickly prototype and develop optimizations leveraging the polyhedral model
  • modular design, configuration files-oriented, ...

PoCC embeds powerful Free software for polyhedral compilation. This software is accessible from the main driver, and several IR conversion functions allows to communicate easily between passes of the compiler.

  • Clan, the Chunky loop analyzer, to extract a polyhedral intermediate representation from the source code
  • Candl, the Chunky analyzer for dependences in loops, to compute polyhedral dependences from the polyhedral IR
  • LetSee, the Legal transformation Space explorator, for iterative compilation using affine multidimensional schedules
  • PLuTo, an automatic parallelizer and locality optimizer for multicores, for powerful optimization with tiling and parallelism in the polyhedral model
  • CLooG, the Chunky Loop Generator, to generate syntactic code from the polyhedral representation
  • PIPLib, the Parametric Integer Programming Library
  • PolyLib, the Polyhedral Library
  • FM, the Fourier-Motzkin library

{Communication}: three groups are available for subscription

  • pocc-announces: receive announces about releases of the software
  • pocc-users: discuss any matter about how to use PoCC
  • pocc-dev: discuss any matter related to the software's implementation, bug fixes, desired features, etc...