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.