Chlore is an implementation of the syntactic transformation recovery algorithm for a polyhedral optimizing compiler. The algorithm was published in the Opening Polyhedral Compiler’s Black Box paper and presented at CGO in 2016. It is a part of Periscop toolset for supporting polyhedral compilation.

Polyhedral compilation uses a mathematical representation of specific parts of imperative programs to perform aggressive optimization. However, polyhedral optimizer takes either code or mathematical representation as input and generates results in the same form, hard to understand for the end user. Chlore allows to recover a sequence of syntactic primitives based on Clay transformation set that achieve an equivalent transformation of the program. This sequence may be read, understood and modified by the user and supplied to Clay for final code generation.

ChLORe stands for Chunky Loop Optimization Recoverer, Chunky is the ancestor of the Periscop project. Please visit the project page for information installation and usage.


  • Oleksandr Zinenko (author)
  • Lénaïc Bagnères (contributor)