Jim Huang
Jim Huang
[blink](https://github.com/jart/blink) is a virtual machine for running x86-64-linux programs on different operating systems and hardware architectures. Recently, it implements a JIT. Quote from [blink/jit.c](https://github.com/jart/blink/blob/master/blink/jit.c): > This file implements an abstraction...
[wasm3](https://github.com/wasm3/wasm3) is a fast WebAssembly interpreter without JIT. In general, [its strategy](https://github.com/wasm3/wasm3/blob/main/docs/Interpreter.md) seems capable of executing code around 4-15x slower than compiled code on a modern x86 processor. * Reduce...
[Benchmark results](https://gist.github.com/michaeljclark/c4fded96d8c341317f0fc67e700143f3) of rv8: (RV32 only, smaller is better) | - | interpreter | JIT | qemu-user | native-x86 | |--|------------|----|------------|------------| | primes | 34.33 | 1.75 | 1.55 |...
> The issue with Clang is that we need to fork a Clang process, which results in a significant overhead. However, its ability to optimize code is strong. In contrast,...
> * As [Utilize dominators for constructing extended basic blocks #142](https://github.com/sysprog21/rv32emu/issues/142), the related experiment of using a dominator tree to detect loops has been preliminarily implemented on the branch [detect_loop](https://github.com/qwe661234/rv32emu/tree/detect_loop)....
The author of [RVVM](https://github.com/LekKit/RVVM) [discussed](https://news.ycombinator.com/item?id=35009545) the design choices where it's substantially different to QEMU. > Performance-wise: > - Instead of a static translate-and-run flow like in QEMU, RVVM has an...
[lightrec](https://github.com/pcercuei/lightrec) is a MIPS-to-everything dynamic re-compiler (aka JIT compiler or dynrec) for PlayStation emulators, using [GNU Lightning](https://www.gnu.org/software/lightning/) as the code emitter. Features: * High-level optimizations. The MIPS code is first...
The [copyjit](https://github.com/Kimplul/copyjit) draws inspiration from the paper "[Copy-and-Patch Compilation](http://fredrikbk.com/publications/copy-and-patch.pdf)." However, what if patching could be entirely eliminated? The core concept revolves around using the compiler to generate 'templates' that can...
QEMU employs a two-step process for executing binaries, involving an intermediate representation known as tiny code. This tiny code is interpreted in two ways: first through emulation and second via...
[pylbbv](https://github.com/pylbbv/pylbbv) is a lazy basic block versioning + copy and patch JIT interpreter for CPython. The copy-and-patch JIT compiler uses a stencil compiler. * At runtime, each basic block, except...