PeriSCoP manipulation tools
Introduction
Periscop is a set of tools and libraries for building an optimizing compiler based on the polyhedral model created and maintained by Cédric Bastoul. My contributions to it are focused on providing ways to manipulate programs in the polyhedral representation.
The new additions to the Periscop suite are Clope, a small library that extracts loop-level parallelism from the SCoP program description, and Ciss, a tool that divides the loops into multiple parts featuring uniform data accesses and thus having uniform dependences between iterations. Compared to the original Periscop components, these tools perform program transformations within the polyhedral model.
Clay allows users to express loop and statement-level transforation with high-level directives in a specially formatted comment in their code. It leverages the analysis power of the polyhedral model to generate the final code and ensure its correctness with respect to the original version. In order to support Chlore and provide a complete set of loop-level transformations for “Opening the Polyhedral Compiler’s Black Box” paper, Clay transformations were extended and rewritten.
Links
Participants
- Oleksandr Zinenko (author of Clope, Ciss, contributor to Clay)
- Cédric Bastoul (author and code owner of Periscop)
- Joël Poudroux (author of Clay)