Array Bytecode Support in MicroJIT
summary
Implements MicroJIT support for array bytecodes newarray, aaload, aastore using NASM templates and a helper call for large allocations that build OpenJ9 spines/aroids and honor the VM’s double‑map handling; validated with a regression suite and DaCapo benchmarks. Results show TRJIT+MicroJIT with array support runs about 4.36x vs interpreter and MicroJIT alone improves by ~1.02x over the prior MicroJIT; enabling arrays lets MicroJIT compile 25 more methods (555→580) and yields ~3.1% average speedup.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:03JIT compilation and OpenJ9
- 3:31Array challenges in OpenJ9
- 5:38MicroJIT overview
- 7:24Performance impact of array support
- 9:10Motivation for array bytecode
- 10:14Compilation and template generation
- 12:00Testing and benchmarking
- 13:01Performance results with arrays
- 14:28Method compilation impact
- 15:34TR JIT vs interpreter
- 17:00Future optimizations
- 18:05Conclusion
- 18:50Q&A
related talks
55mNew Bytecodes, New Objects
45mMinimal Values Under the Hood
48mJust-In-Time Compilation for Java Performance: Recent and Ongoing Improvements
37mAssembling
48mJava 9 Performance
01h 09mFrom Bytecode to Native Code in HotSpot JVM
35mJava at Speed: Building a Better JVM
47mBeyond JVM: How the Platform is Evolving for new Languages & Features
