Allocation removal by partial evaluation in a tracing JIT

  • Authors:
  • Carl Friedrich Bolz;Antonio Cuni;Maciej FijaBkowski;Michael Leuschel;Samuele Pedroni;Armin Rigo

  • Affiliations:
  • Heinrich-Heine-Universität, Düsseldorf, Germany;Heinrich-Heine-Universität, Düsseldorf, Germany;merlinux GmbH, Hildesheim, Germany;Heinrich-Heine-Universität, Düsseldorf, Germany;Open End, Göteborg, Sweden;Heinrich-Heine-Universität, Düsseldorf, Germany

  • Venue:
  • Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

The performance of many dynamic language implementations suffers from high allocation rates and runtime type checks. This makes dynamic languages less applicable to purely algorithmic problems, despite their growing popularity. In this paper we present a simple compiler optimization based on online partial evaluation to remove object allocations and runtime type checks in the context of a tracing JIT. We evaluate the optimization using a Python VM and find that it gives good results for all our (real-life) benchmarks.