Code Generation in the Polyhedral Model Is Easier Than You Think

  • Authors:
  • Cedric Bastoul

  • Affiliations:
  • Université de Versailles Saint Quentin, France

  • Venue:
  • Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many advances in automatic parallelization and optimization have been achieved through the polyhedral model. It has been extensively shown that this computational model provides convenient abstractions to reason about and apply program transformations. Nevertheless, the complexity of code generation has long been a deterrent for using polyhedral representation in optimizing compilers. First, code generators have a hard time coping with generated code size and control overhead that may spoil theoretical benefits achieved by the transformations. Second, this step is usually time consuming, hampering the integration of the polyhedral framework in production compilers or feedback-directed, iterative optimization schemes. Moreover, current code generation algorithms only cover a restrictive set of possible transformation functions. This paper discusses a general transformation framework able to deal with non-unimodular, non-invertible, non-integral or even non-uniform functions. It presents several improvements to a state-of-the-art code generation algorithm. Two directions are explored: generated code size and code generator efficiency. Experimental evidence proves the ability of the improved method to handle real-life problems.