The efficient handling of guards in the design of RPython's tracing JIT

  • Authors:
  • David Schneider;Carl Friedrich Bolz

  • Affiliations:
  • Heinrich-Heine-Universität Düsseldorf, Düsseldorf, Germany;Heinrich-Heine-Universität Düsseldorf, Düsseldorf, Germany

  • Venue:
  • Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tracing just-in-time (JIT) compilers record linear control flow paths, inserting operations called guards at points of possible divergence. These operations occur frequently in generated traces and therefore it is important to design and implement them carefully to find the right trade-off between deoptimization, memory overhead, and (partly) execution speed. In this paper, we perform an empirical analysis of runtime properties of guards. This is used to guide the design of guards in the RPython tracing JIT.