A Highly Flexible, Parallel Virtual Machine: Design and Experience of ILDJIT

Simone Campanoni, Giovanni Agosta, Stefano Crespi Reghizzi and Andrea Di Biagio

Software: Practice and Experience (SPE), 2010

ILDJIT, a new-generation dynamic compiler and virtual machine designed to support parallel compilation, is here introduced. Our dynamic compiler targets the increasingly popular ECMA-335 specification. The goal of this project is twofold: on one hand, it aims at exploiting the parallelism exposed by multi-core architectures to hide dynamic compilation latencies by pipelining compilation and execution tasks; on the other hand, it provides a flexible, modular and adaptive framework for dynamic code optimization. The ILDJIT organization and the compiler design choices are presented and discussed highlighting how adaptability and extensibility can be achieved. Thanks to the compilation latency masking effect of the pipeline organization, our dynamic compiler is able to mask most of the compilation delay, when the underlying hardware exposes sufficient parallelism. Even when running on a single core, the ILDJIT adaptive optimization framework manages to speed up the computation with respect to other open source implementations of ECMA-335.

[ Paper ]

  author    = {Simone Campanoni and 
               Giovanni Agosta and 
               Stefano Crespi-Reghizzi and 
               Andrea Di Biagio},
  title     = {A Highly Flexible, Parallel Virtual Machine: Design and Experience of {ILDJIT}},
  journal   = {Software: Practice and Experience},
  volume    = {40},
  number    = {2},
  year      = {2010},
  pages     = {177-207},
  ee        = {http://dx.doi.org/10.1002/spe.950},
  bibsource = {DBLP, http://dblp.uni-trier.de}