General

Profile

tekknolagi (Maxwell Bernstein)

Issues

open closed Total
Assigned issues 5 40 45
Reported issues 0 2 2

Projects

Project Roles Registered on
Ruby Committer 06/06/2025

Activity

03/10/2026

07:53 PM Ruby Revision 3fa74bff (git): ZJIT: Only emit IncrCounter instructions in stats mode (#16330)
* 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)

03/06/2026

05:33 PM Ruby Revision 980bc396 (git): ZJIT: Count LoadField and StoreField executions (#16318)
## Runtime Counters on lobsters (before/after Jacob's load-store opt)
| Stat | Before | After | Delta |
|------|--------|-------|-------|
| load_field_count | 110,410,542 | 106,547,275 | -3,863,267 (-3.5%) |
| store_field_count | 9,196,...
tekknolagi (Maxwell Bernstein)

03/04/2026

09:18 PM Ruby Revision 6ea811e6 (git): ZJIT: Add for_each_operand methods to Insn (#16305)
- 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)

03/03/2026

11:01 PM Ruby Revision f9c51ac5 (git): ZJIT: Fix Class type system bug and constant-fold IsA (#15268)
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)

03/02/2026

09:58 PM Ruby Revision 993c7a27 (git): ZJIT: Don't use find() in clean_cfg (#16284)
We don't need to materialize an instruction or even look at its
operands.
tekknolagi (Maxwell Bernstein)
09:35 PM Ruby Revision 2ccb44c1 (git): ZJIT: Don't use find() in infer_types (#16283)
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)
09:06 PM Ruby Revision a81c3eb7 (git): ZJIT: Use LoadField for TypedData ivars (#16259)
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)

02/27/2026

08:00 PM Ruby Revision c57d594f (git): ZJIT: Use LoadField for Class/Module ivars (#16252)
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)
05:43 PM Ruby Revision 5d87dd6d (git): ZJIT: Handle splatkw YARV instruction (#16267)
The most common cases are nil and hash, so just cover those. If we need to convert to a hash, we can handle that later. tekknolagi (Maxwell Bernstein)

02/25/2026

05:08 PM Ruby Revision b52cb82d (git): ZJIT: Format negative offsets as small negative hex values (#16248)
Before:
Optimized HIR:
fn block in <main>@benchmarks/setivar.rb:40:
bb1():
EntryPoint interpreter
v1:BasicObject = LoadSelf
Jump bb3(v1)
bb2():
EntryPoint JIT(0)
v4:BasicObject = LoadArg :se...
tekknolagi (Maxwell Bernstein)

Also available in: Atom