Section: Software
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). 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 [17] .
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 http://www.prism.uvsq.fr/~bem/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.