Periscop suite aggregates a set of tools and libraries for using the polyhedral model (or polytope model) in an optimizing compiler.
Polyhedral model uses an algebraic representation of imperative program statements and control constructs to provide deep analysis and enable agressive restructuring. From the very high-level point of view, iterative executions of program statements are represented as points in a multi-dimensional space that form a polyhedron, hence the name of the model. This representation was initially available only for static control flow regions, commonly referred to as SCoP, Static Cotrol Parts. Thus “periscop” stands for tools “around static control flow parts”.
The suite currently contains the following projects:
- OpenScop: representation format for polyhedra and an exchange library;
- PipLib: parametric integer programming solver library, the mathematical core behind the polyhedral optimization;
- CLooG: code generator from the polyhedral representation;
- Clan: polyhedral representation extractor from the C code;
- Candl: data dependence analyzer in the polyhedral model;
- Clay: source-level semi-automatic program transformation engine;
- Chlore: tool for reverse engineering the effects of polyhedral optimization on the source level.