Meta-compilers, JITs & virtual machines

Deegen: A JIT-Capable VM Generator

A meta-compiler that takes a dynamic language's bytecode semantics, written as C++ functions, and generates a high-performance interpreter and a Copy-and-Patch baseline JIT.

C++ LLVM

The problem

Building a fast virtual machine for a dynamic language means writing an interpreter and one or more JIT tiers by hand, and repeating that effort for every language.

The idea

Specify only the bytecode semantics; let a meta-compiler generate the interpreter and a Copy-and-Patch baseline JIT automatically, producing a competitive two-tier execution engine.

How it fits the group's work

Deegen is the group’s most complete example of a compiler-generating compiler. Where TACO generates kernels for one domain (tensor algebra), Deegen generates an entire execution engine — interpreter plus JIT — from a semantic description. It builds directly on Copy-and-Patch for its fast baseline tier and is validated by reconstructing a competitive Lua virtual machine.

Key publications

All software