* Stack map for local variables * Come up with a unified theory of local variables * Come up with a unified calling convention * Delete or “see through” array allocations for * \*rest parameter passing * caller \*splat argument * Design and implement compiler\<-\>interpreter state machine for function lifecycle * Speed up the compiler * Reduce memory usage of Insn/lir::Insn https://github.com/Shopify/ruby/issues/986 * Minimize SSA: https://github.com/ruby/ruby/pull/17311 * Don’t use full backend for generating/rewriting/patching stubs https://github.com/Shopify/ruby/issues/963 * Extend optimization passes * Make load-store et al whole-CFG instead of block-local * Make canonicalization whole-CFG instead of block-local https://github.com/Shopify/ruby/issues/983 * Improve inliner * Inline through blocks * Inline methods with rest parameters: https://github.com/ruby/ruby/pull/17995 * Do less in PushInlineFrame https://github.com/Shopify/ruby/issues/1008 * Tune it: thresholds, limits, other heuristics * Support long(er) jumps within a code unit for large blobs of generated code (e.g. templates, filters, protoboeuf) * Speed up allocation paths: collaborate with GC team to make object allocation faster * Speed up profiling * Improve Ractor support: don’t bail if Ractors are enabled * Support exception handlers https://github.com/Shopify/ruby/issues/966 / `throw` https://github.com/Shopify/ruby/issues/1016
throwZJIT: Compile throw instruction #1016