@CONFERENCE\{IMM2006-04746, author = "A. Gal and M. Franz and C. W. Probst", title = "HotpathVM: An Effective {JIT} for Resource-constrained Devices", year = "2006", month = "jun", keywords = "virtual machine, resource-constrained devices, just-in-time compilers", booktitle = "2nd International Conference on Virtual Execution Environments ({VEE} 2006)", volume = "", series = "", editor = "", publisher = "", organization = "", address = "", url = "http://www2.compute.dtu.dk/pubdb/pubs/4746-full.html", abstract = "We present a just-in-time compiler for a Java {VM} that is small enough to fit on resource-constrained devices, yet 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} 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." }