EN FR
EN FR
Bibliography
Bibliography


Section: Software and Platforms

PoCo

Participant : Christophe Alias.

PoCo is a polyhedral compilation framework providing many features to quickly prototype program analysis and optimizations in the polyhedral model. Essentially, PoCo provides:

  • A C front-end extracting the polyhedral representation of the input program. The parser itself is based on EDG (via Rose), an industrial C/C++ parser from Edison group used in Intel compilers.

  • An extended language of pragmas to feed the source code with compilation directives (a schedule, for example).

  • A symbolic layer on polyhedral libraries Polylib (set operations on polyhedra) and Piplib (parameterized ILP, see Section  5.2 ). This feature simplifies drastically the developer task.

  • Some dependence analysis (polyhedral dependence graph, array dataflow analysis), array region analysis, array liveness analysis.

  • A C and VHDL code generation based on the ideas of P. Boulet and P. Feautrier  [16] .

The array dataflow analysis (ADA) of PoCo has been extended to a FADA (Fuzzy ADA) by M. Belaoucha, former PhD student at Université de Versailles. FADALib is available at https://bitbucket.org/mbelaoucha/fadalib . PoCo has been developed by Christophe Alias. It represents more than 19000 lines of C++ code. The tools Bee, Chuba, and RanK presented thereafter make an extensive use of PoCo abstractions.