diff options
| author | Kevin Menard <kevin@nirvdrum.com> | 2026-01-14 19:10:06 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-14 19:10:06 -0500 |
| commit | 4a21b83693fdc0e976da209047ba286b2f4084e5 (patch) | |
| tree | d7976abd267ba43eafee2aa24285a67cdd29f6d9 /benchmark/vm1_gc_wb_ary.yml | |
| parent | cdb2b0eed50e1c837adeb85ef8978e533f056327 (diff) | |
* ZJIT: Profile `invokesuper` instructions
* ZJIT: Introduce the `InvokeSuperDirect` HIR instruction
The new instruction is an optimized version of `InvokeSuper` when we know the `super` target is an ISEQ.
* ZJIT: Expand definition of unspecializable to more complex cases
* ZJIT: Ensure `invokesuper` optimization works when the inheritance hierarchy is modified
* ZJIT: Simplify `invokesuper` specialization to most common case
Looking at ruby-bench, most `super` calls don't pass a block, which means we can use the already optimized `SendWithoutBlockDirect`.
* ZJIT: Track `super` method entries directly to avoid GC issues
Because the method entry isn't typed as a `VALUE`, we set up barriers on its `VALUE` fields. But, that was insufficient as the method entry itself could be collected in certain cases, resulting in dangling objects. Now we track the method entry as a `VALUE` and can more naturally mark it and its children.
* ZJIT: Optimize `super` calls with simple argument forms
* ZJIT: Report the reason why we can't optimize an `invokesuper` instance
* ZJIT: Revise send fallback reasons for `super` calls
* ZJIT: Assert `super` calls are `FCALL` and don't need visibily checks
Diffstat (limited to 'benchmark/vm1_gc_wb_ary.yml')
0 files changed, 0 insertions, 0 deletions
