summaryrefslogtreecommitdiff
path: root/benchmark/vm1_gc_wb_ary.yml
diff options
context:
space:
mode:
authorKevin Menard <kevin@nirvdrum.com>2026-01-14 19:10:06 -0500
committerGitHub <noreply@github.com>2026-01-14 19:10:06 -0500
commit4a21b83693fdc0e976da209047ba286b2f4084e5 (patch)
treed7976abd267ba43eafee2aa24285a67cdd29f6d9 /benchmark/vm1_gc_wb_ary.yml
parentcdb2b0eed50e1c837adeb85ef8978e533f056327 (diff)
ZJIT: Optimize common `invokesuper` cases (#15816)HEADmaster
* 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