Informatik, TU Wien

Bridging the Memory Gap: A Framework for Intelligent Speculative Compiler Optimization

Static program analyses have to over-approximate the run-time behavior of programs to follow the requirement of safety. This sacrifices significant optimization potential.

Der Arbeitsbereich für Programmiersprachen und Übersetzer am Institut für Computersprachen lädt ein.

Abstract

Static program analyses have to over-approximate the run-time behavior of programs to follow the requirement of safety. This sacrifices significant optimization potential. To overcome this limitation, we propose to use unsafe, but more precise analyses together with speculative optimizations, which ensure correctness in case of misspeculation.

In this talk, we present our Framework for Intelligent Speculative Compiler Optimizations (FrISCO) and its application to the optimization of memory accesses. The framework uses Machine Learning to yield precise predictors for dynamic program behavior on the one hand and novel speculative optimizations which use these predictors to derive precise cost models on the other.

For memory accesses, speculative optimization is of particular importance due to the memory gap and the high imprecision of alias analyses. We implemented the optimization within our compiler framework for the Intel Itanium. Our experimental results show that the heuristics generated by Machine Learning yield precise results, especially due to our concept of program classification. Overall, our optimization together with the automatically generated heuristics leads to significant performance improvement for the SPEC CPU2006 benchmarks.

Biography

Lars Alvincz (ne Gesellensetter) is a PhD student in the "Software Engineering for Embedded Systems" group of Prof. Dr. Sabine Glesner at the Technical University of Berlin. He studied computer science at the University of Ulm, at the DCU Dublin, and at the University of Bielefeld, where he received his Diploma Degree in 2004. In his research, he investigates methods to improve compilers (including program analyses and program optimization) by using techniques from the field of machine learning.