What does L1 Buy Us?
L1 is going to give us a number of benefits: • Decreased algorithmic complexity, because we’re not having to shuffle data between the PIR registers and the C system stack • Improved, easier, faster JIT. A “fixed” JIT • Potential to plug more easily into existing JIT engines (LLVM and libJIT) • Potential for trace-based JIT, where we trace out “hot spots” in the code and JIT them with type-specific information to speed up dispatch. • Potential for high-level optimizations including subroutine inlining, dead code elimination, etc • Potential for context threading, where we try to align the VM with the control flow of the underlying machine, to maximize branch prediction and caching at the hardware level • Potential for improved GC and resource allocation performance because it will be easier to analyze where memory is allocated and where it falls out of scope. This includes “escape analysis”, where we determine the lifespan of a reference and are able to deallocate it more quickly and ef