JavART: a Lightweight Rule-Based JIT Compiler Using Translation Rules Extracted from(…)
summary
Prototype JIT for Android 14 uses translation rules learned offline from existing JITs, extracts ~5k rules in ~10 minutes, verifies them with symbolic execution and SMT-backed verification, and applies them via sliding-window rule matching plus a one-pass block-scope register allocator. Implemented on Pixel 7, it generates native code 5.5× faster than Android’s baseline JIT, runs that code ~6% faster, cuts overall CPU cycles ~20–23% (1.23× end-to-end speedup) and halves frame-drop rate.
AI-written summary · about
chapters (22)
- 0:00JavART introduction
- 0:22JavART purpose
- 1:06Android runtime tiers
- 2:29Template JIT limits
- 2:50Bytecode-native mappings
- 3:12JavART workflow
- 3:32Offline rule learning
- 4:14Root candidates from code
- 4:36Rule parameterization
- 4:57Verifying translation rules
- 6:00Usable translation rules
- 6:43Register allocation details
- 7:25Evaluation on Pixel 7
- 8:09Speed results
- 9:13Performance and cycles
- 9:55Frame drop rate
- 10:16Summary of findings
- 10:57Q&A: Conditional flags
- 12:04Q&A: Operand alignment
- 13:05Q&A: Instruction coverage
- 13:47Q&A: Limitations and future
- 14:28Q&A: JavART effectiveness
related talks
55mCompilers. Dalvik. ART. And everything in between
38mGraal
23mFast and Compact: Reducing Size of AOT-Compiled Java Code Without Sacrificing Performance
25mCo-operative JIT Compilation for Resource-Constrained Low-Power Coprocessors
54mWhat Lies Beneath
55mJIT and AOT in the JVM
30mOn Automating Hybrid Execution of Ahead-of-Time and Just-in-Time Compiled Code
42mUnderstanding the Kotlin to Dalvik bytecode translation
