Dynamic Look Ahead Compilation: a Technique to Hide JIT Compilation Latencies in Multicore Environment

Simone Campanoni, Martino Sykora, Giovanni Agosta, and Stefano Crespi Reghizzi

Compiler Construction (CC), 2009

We have introduced the DLA compilation technique, covering theoretical and practical problems related to it and showing how DLA compilation can be a powerful technique to reduce the impact of dynamic compilation time and to generate high quality native code. Its effectiveness proves to be strictly related to the ability both to correctly predict the execution flow and to apply the right set of optimizations to each code region. A more precise matching of the DLA compiled methods set to the execution trace directly results into a reduction of the compilation delay, while the optimization of the hot spots should guarantee the execution of good quality code. On the Java Grande and SciMark benchmark set (not a favourable one, since it has a reduced use of polymorphism) we obtain an average speedup of 15%, and an average reduction of the overhead to less than 1% of the JIT compilation time. It is to be expected that the benefits of DLA compilation will be higher for applications characterized by large call graphs, which are typical of Object Oriented highly polymorphic applications. This will be investigated in the future.

[ Paper ] [ Talk ]

 author = {Simone Campanoni and
           Martino Sykora and
           Giovanni Agosta and
           Stefano Crespi Reghizzi},
 title = {Dynamic Look Ahead Compilation: A Technique to Hide JIT Compilation Latencies in Multicore Environment},
 booktitle = {Proceedings of the 18th International Conference on Compiler Construction: Held As Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009},
 series = {CC '09},
 year = {2009},
 isbn = {978-3-642-00721-7},
 location = {York, UK},
 pages = {220--235},
 numpages = {16},
 url = {http://dx.doi.org/10.1007/978-3-642-00722-4_16},
 doi = {10.1007/978-3-642-00722-4_16},
 acmid = {1532844},
 publisher = {Springer-Verlag},
 address = {Berlin, Heidelberg},