The virtual processor: fast, architecture-neutral dynamic code generation

  • Authors:
  • Ian Piumarta

  • Affiliations:
  • Laboratoire d'Informatique de Paris, Université Pierre et Marie Curie, Paris Cedex, France

  • Venue:
  • VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tools supporting dynamic code generation tend too be low-level (leaving much work to the client application) or too intimately related with the language/system in which they are used (making them unsuitable for casual reuse). Applications or virtual machines wanting to benefit from runtime code generation are therefore forced to implement much of the compilation chain for themselves even when they make use of the available tools. The VPU is an fast, high-level code generation utility that performs most of the complex tasks related to code generation, including register allocation, and which produces good-quality C ABI-compliant native code. In the simplest cases, adding VPU-based runtime code generation to an application requires just a few lines of additional code--and for a typical virtual machine, VPU-based just-in-time compilation requires only a few lines of code per virtual instruction.