* ZJIT: Only emit IncrCounter instructions in stats mode This cleans up a lot of HIR output when we're not explicitly measuring counters. They don't generate code when not in stats mode so they are just HIR clutter. * ZJIT: Enable stat...tekknolagi (Maxwell Bernstein)
- Add `for_each_operand`, `for_each_operand_mut`, and `try_for_each_operand` methods to `Insn`, backed by a shared `for_each_operand_impl!` macro - Replace the old `worklist_traverse_single_insn` function on `Function` with direct use of...tekknolagi (Maxwell Bernstein)
Fix a some bugs in the type lattice around classes and user-defined classes. Refine types more precisely to subclasses of object. With that fix, add const-folding support for IsA. Co-authored-by: John Hawthorn <john.hawthorn@shopify.co...tekknolagi (Maxwell Bernstein)
No need to materialize the whole instruction; if/when we need the operands, do the union-find lookup per operand. This saves on allocation time.tekknolagi (Maxwell Bernstein)
Drops C calls to `rb_ivar_get_at_no_ractor_check` out of the stats completely. Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>tekknolagi (Maxwell Bernstein)
Assume only one box (root box) and invalidate otherwise. Drops C calls to `rb_ivar_get_at_no_ractor_check`. Before: ``` Top-20 calls to C functions from JIT code (77.3% of total 64,311,573): rb_vm_opt_send_w...tekknolagi (Maxwell Bernstein)