Oil and Water Can Mix: An Integration of Polyhedral and AST-Based Transformations

Jun Shirako, Louis-Noel Pouchet, Vivek Sarkar
2014 SC14: International Conference for High Performance Computing, Networking, Storage and Analysis  
Optimizing compilers targeting modern multi-core machines require complex program restructuring to expose the best combinations of coarse-and fine-grain parallelism and data locality. The polyhedral compilation model has provided significant advancements in the seamless handling of compositions of loop transformations, thereby exposing multiple levels of parallelism and improving data reuse. However, it usually implements abstract optimization objectives, for example "maximize data reuse",
more » ... often does not deliver best performance, e.g., the complex loop structures generated can be detrimental to short-vector SIMD performance. In addition, several key transformations such as pipeline-parallelism and unroll-and-jam are difficult to express in the polyhedral framework. In this paper, we propose a novel optimization flow that combines polyhedral and syntactic/AST-based transformations. It generates high-performance code that contains regular loops which can be effectively vectorized, while still implementing sufficient parallelism and data reuse. It combines several transformation stages using both polyhedral and AST-based transformations, delivering performance improvements of up to 3× over the PoCC polyhedral compiler on Intel Nehalem and IBM Power7 multicore processors.
doi:10.1109/sc.2014.29 dblp:conf/sc/ShirakoPS14 fatcat:lgdqaqc2ibcknnefuum5sfttq4