Allocation Removal by Partial Evaluation in a Tracing JIT

Free registration required

Executive Summary

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

  • Format: PDF
  • Size: 419.6 KB