CoSSJIT: Combining Static Analysis and Speculation in JIT Compilers
summary
CoSSJIT generates polymorphic conditions, branching conditions, and inlining conditions during a static interprocedural dataflow analysis and feeds those conditional results into an extended OpenJVM JIT that resolves them from runtime profiles. The prototype implements static analysis offline and adds lightweight runtime checks so failed speculations fall back to heapification. Results show a 1.4× average increase in allocation sites, 5.7× increase in stack-bytes actually allocated, about 6.7% mean runtime speedup, and ~35% fewer GCs at small heaps.
AI-written summary · about
chapters (15)
- 0:00CoSSJIT introduction
- 0:23JIT and static analysis background
- 1:05Stack allocation optimization past work
- 2:08JIT vs static analysis
- 3:34Runtime speculation enrichment
- 3:55Polymorphic call sites handling
- 6:00Control flow and stack allocation
- 6:44Method inlining and escaping
- 8:08Results integration
- 8:50Evaluation setup
- 9:11Stack allocation improvements
- 10:16Garbage collection impact
- 10:37Performance gains
- 11:21Summary and future
- 11:43Q&A
related talks
23mFormally Verified Speculation and Deoptimization in a JIT Compiler
29mTowards Formally Verified Just-In-Time Compilation
21mTowards Compiler-Guided Static Analysis
18mPreservation of Speculative Constant-time by Compilation
34mWhat happens to your code when you don't look?
24mFormally Verified Native Code Generation in an Effectful JIT: Turning the CompCe...
18mPreservation of speculative constant-time by compilation
44mJIT Me Baby One More Time
