Polyhedral code generation in the real world

  • Authors:
  • Nicolas Vasilache;Cédric Bastoul;Albert Cohen

  • Affiliations:
  • ALCHEMY Group, INRIA Futurs and LRI, Université Paris-Sud XI;ALCHEMY Group, INRIA Futurs and LRI, Université Paris-Sud XI;ALCHEMY Group, INRIA Futurs and LRI, Université Paris-Sud XI

  • Venue:
  • CC'06 Proceedings of the 15th international conference on Compiler Construction
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The polyhedral model is known to be a powerful framework to reason about high level loop transformations. Recent developments in optimizing compilers broke some generally accepted ideas about the limitations of this model. First, thanks to advances in dependence analysis for irregular access patterns, its applicability which was supposed to be limited to very simple loop nests has been extended to wide code regions. Then, new algorithms made it possible to compute the target code for hundreds of statements while this code generation step was expected not to be scalable. Such theoretical advances and new software tools allowed actors from both academia and industry to study more complex and realistic cases. Unfortunately, despite strong optimization potential of a given transformation for e.g., parallelism or data locality, code generation may still be challenging or result in high control overhead. This paper presents scalable code generation methods that make possible the application of increasingly complex program transformations. By studying the transformations themselves, we show how it is possible to benefit from their properties to dramatically improve both code generation quality and space/time complexity, with respect to the best state-of-the-art code generation tool. In addition, we build on these improvements to present a new algorithm improving generated code performance for strided domains and reindexed schedules.