SPIRE, a Sequential to Parallel Intermediate Representation Extension
CRI, Mathematiques et systemes, MINES ParisTech, 35 rue Saint-Honore, 77300, Fontainebleau, France
Technical Report CRI/A-487, MINES ParisTech, 2012
@techreport{khaldi2012spire,
title={SPIRE, a Sequential to Parallel Intermediate Representation Extension},
author={Khaldi, D. and Jouvelot, P. and Ancourt, C. and Irigoin, F.},
year={2012},
institution={Technical Report CRI/A-487, MINES ParisTech}
}
SPIRE is a new, generic, parallel extension for the intermediate representations used in compilation frameworks of sequential languages; it intends to easily leverage their existing infrastructure to address both control and data parallel languages. Since the efficiency and power of the transformations and optimizations performed by compilers are closely related to the presence of a suitable program representation, SPIRE introduces both abstract and low-level features adapted to a wide spectrum of optimization goals; a formal definition of its operational semantics is also provided. We use the PIPS intermediate representation as a use case for our approach, extend it with SPIRE parallel primitives and show how examples from the OpenCL, Habanero-Java and X10 parallel languages can be dealt with. Our goal with the development of SPIRE is to provide a powerful parallel program representation that will ease the design of efficient task partitioning applications and, more generally, to draw a possible roadmap for the compiler designers who need to introduce parallel features into their own infrastructures.
February 11, 2012 by hgpu