2006/06/14 by Andreas Gal, Christian W. Probst, Michael Franz · 5 citations
Computer Science · #Logic, programming, and type systems #Parallel Computing and Optimization Techniques #Security and Verification in Computing
paper · doi:10.1145/1134760.1134780
openalex publication_date 2006/06/14 · openalex created_date 2016/06/24 · openalex updated_date 2026/07/29
We present a just-in-time compiler for a Java VM that is small enough to fit on resource-constrained devices, yet is surprisingly effective. Our system dynamically identifies traces of frequently executed bytecode instructions (which may span several basic blocks across several methods) and compiles them via Static Single Assignment (SSA) construction. Our novel use of SSA form in this context allows to hoist instructions across trace side-exits without necessitating expensive compensation code in off-trace paths. The overall memory consumption (code and data) of our system is only 150 kBytes, yet benchmarks show a speedup that in some cases rivals heavy-weight just-in-time compilers.