PyPs, a programmable pass manager

Serge Guelton, Mehdi Amini, Ronan Keryell, Beatrice Creusillet
Telecom Bretagne, Plouzane, France
Tech. report A/475/CRI, 2011


   title={PyPs, a programmable pass manager},

   author={Guelton, S. and Amini, M. and Keryell, R. and Creusillet, B. and Bretagne, T. and Plouzan{‘e}, F.},



Download Download (PDF)   View View   Source Source   



As hardware platforms are growing in complexity, compiler infrastructures need more flexibility: due to the heterogeneity of these platforms, compiler phases must be combined in unusual and dynamic ways, and several tools may need to be combined to handle specific parts of the compilation process efficiently. The need for flexibility also appears in iterative compilation when different phase orderings are explored. In this context, we need to assemble pieces of software-typically compiler phases-without having to dive into the tool internals. The entity in charge of this phase management is called a "pass manager". While pass managers used to rely on a statically defined schedule, the introduction of plugins in gcc and the current trends in compiler design showcased by llvm pave the way for dynamic pass schedulers. The contributions of this paper are a high-level modeling of pass chaining and its implementation in the pips source-to-source compiler framework under the name pyps. As a result, we propose a high level api for building end-to-end specialized compilers with the minimum efforts validated by 5 prototypes detailed in the paper: an iterative compiler, an openmp directive generator, a C-to-cuda translator, a multimedia instruction generator and a C-to-fpga translator.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2021 hgpu.org

All rights belong to the respective authors

Contact us: