Putting Polyhedral Loop Transformations to Work
Abstract
We seek to extend the scope and efficiency of iterative compilation techniques by searching not only for the most appropriate program transformation parameters but for the most appropriate transformations themselves, or even for compositions of transformations. For that purpose, we need to find a generic way to express program transformations and compositions of transformations. In this article, we introduce a framework for the polyhedral representation of a wide range of program transformations in a unified and generic way. We also show that it is possible to generate efficient code after the application of polyhedral program transformations. Finally, we demonstrate an implementation of the program transformation framework and the code generation techniques in the Open64/ORC compiler.