Skip to content

jit: recover the CALL's null_or_self slot on outer-call resume; check.py: arm the jit-stats floor across the synthetic suite - #947

Merged
youknowone merged 10 commits into
mainfrom
aheui
Aug 1, 2026
Merged

jit: recover the CALL's null_or_self slot on outer-call resume; check.py: arm the jit-stats floor across the synthetic suite#947
youknowone merged 10 commits into
mainfrom
aheui

Conversation

@youknowone

@youknowone youknowone commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Two lines of work: a silent wrong-answer fix on the outer-call resume path, and
arming the gate that should have caught its neighbours.

1. A dropped for iteration on outer-call resume

When an inline callee owns a compiled loop the walk aborts the enclosing trace
(fbw_state.rs, mirroring pyjitpl.py:2818-2828) and the caller resumes
forward at the CALL. collect_call_stack_overrides builds that caller's operand
stack from three sources, and one live slot has no source at all: the
null_or_self a PUSH_NULL leaves under the CALL. The walk holds no box for it
(vstack_box is an empty OpRef), no live color names it (in_pcdep=None), and
the shadow's Ref(0) is the same NULL an unmirrored slot reads back as.

So the slot stayed absent, flush_walk_end_state_to_frame_inner declined the
outer-call flush on a slot whose correct value is exactly that null, the legacy
rollback+replay ran instead, and the R1 in-flight FOR_ITER delivery was refused
to avoid a double-apply — dropping the iteration entirely.

The CALL's own operand layout names the slot without guessing:
[callable, null_or_self, arg0 .. arg_{argc-1}] ends at stack_end, so the
sentinel sits argc + 1 below it. Any coordinate that does not invert to a plain
Call keeps the conservative decline.

The collector's comment also asserted that the live sources already emit a
genuine null-or-self sentinel; that is only true where they hold a box for the
slot, which the PUSH_NULL position never does. Corrected.

New fixture bench/synth/foriter_call_resume_drops_iteration.py prints a
count alongside the accumulator, so the loss shows up as 8999 vs 9000
rather than as an accumulator that merely looks plausible. All three ingredients
are load-bearing — two distinct recursive callees, a post-warm-up branch flip,
and a trailing statement.

Also here: majit: read the diagnostic env gates once, and build their messages behind them, and jit: count the deduped set in intern_liveness' liveness record header.

2. The jit-stats regression floor was armed on 3 of 340 synthetic fixtures

_jit_stats_regression_floor is the right instrument for a structural JIT
regression: it runs on every invocation, including the bare
python pyre/check.py CI runs, needs no flag, and gates only counters whose
defect direction is fixed. It runs only where a committed
<name>.<backend>.jitstats exists — and pyre/.gitignore ignored
/bench/synth/*.jitstats wholesale with three ! negations. "No baseline" was
the default, and at the gate it is indistinguishable from "recorded and clean":
both print PASS.

The max-pypy-ratio header cannot substitute. It is one absolute ceiling per
fixture, kept loose to survive slow runners: recursion_memo_branch sits near
8.9x under a limit of 20, so it absorbs a 2x regression and still passes. And it
does not exist at all for wasm — run_synthetic_bench passes vs_pypy=None
there, so the floor is wasm's only gate.

This PR:

  • Tracks the synthetic baselines (.gitignore policy flipped; 359 dynasm +
    359 cranelift + 355 wasm).
  • Gates guard_failures on a bounded rise past base + max(base // 4, 2).
  • Gates loops_compiled on any fall. This is the class the other two miss: a
    pre-trace decline aborts nothing, so loops_aborted holds, and it removes the
    compiled guards that used to fail, so guard_failures falls — both existing
    gates read the loss as an improvement while the hot loop runs interpreted.
  • Fails a benchmark that emits [jit-stats] with no committed baseline, so a
    newly added fixture cannot silently reopen the hole. It did exactly that during
    this branch's rebases: defaults_reassigned_midloop, del_cellvar_walk_commit
    and method_reassign_after_warmup each arrived from main with no baseline and
    check.py printed PASS for them.

Why one counter gets a band and the other does not

Measured, not guessed — diffing the dynasm and cranelift baselines across the
synthetic fixtures, i.e. two independent code generators:

counter defect direction cross-backend agreement gate
loops_compiled down 99.7% any fall
loops_aborted up 99.7% any rise
bridges_compiled neither 97.9% ungated
guard_failures up 97.4% rise past the band

Cross-runner stability: measured, and it holds

The first CI run was the experiment. macos-latest, ubuntu-24.04 and
windows-latest reported the same fixtures with the same numbers
, and rerunning
the suite locally on macOS reproduced them byte for byte, down to the per-backend
tallies. So loops_compiled is stable across 3 OSes × 2 code generators × 2
hosts, and a CI disagreement on it means the trees differ, not the hosts —
which is what it meant there: CI builds the PR merge commit, and main had moved
under the branch.

The gate fired three times. Two were intended; one was a false positive.

firing disposition
type_metatype_method_call loops_compiled 4 -> 2 #925's documented effect (guard_failures 9480 -> 1, bridges_compiled 47 -> 0), reproduced against the pre-rebase binary. Re-record.
class_attrs_methods, foriter_inplace_immutable, inline_subwalk_mutating_residual #942's widened method-form inline: an accessor callee now inlines into the caller's loop, so the callee's own loop disappears. Every co-moving counter improves (guard_failures 12316 -> 603, loops_aborted 1 -> 0), and the measured ratio matches #942's own published 13.0x/18.3x. Re-record.
exception_reraise_tb_depth_{hot,jitstress}loops_compiled 40 -> 4 and guard_failures 0 -> 1803 false positive. Both gated directions at once, on a change that is 2.03x faster. Re-record.

That last one is worth stating plainly, because it bounds what these counters
are worth. origin/main built alone reproduces the counters exactly, so it is
not this branch. Interleaved user+sys CPU time, min of 5, e1e97e61d32 vs
origin/main, same host:

fixture old base main
exception_reraise_tb_depth_hot 0.750s 0.370s 2.03x faster
exception_reraise_tb_depth_jitstress 0.490s 0.490s neutral

40 specialized loops with 30 aborts and zero guard failures was the worse
shape; 4 general loops plus 9 bridges is twice as fast. So loops_compiled down
together with guard_failures up does not imply a defect, and no combination
of these counters settles it — only an A/B of two binaries does. The gate's value
is that it forces that look; its cost is that the look is sometimes needed.

⚠️ It also surfaced a real wasm regression, on main, that nothing else could see

The same two fixtures move the other way on wasm: loops_aborted 30 -> 44 and
30 -> 1198. Times, both measured by check.py itself on the same host:

fixture old base branch on origin/main
exception_reraise_tb_depth_hot 0.76s 0.99s 1.30x slower
exception_reraise_tb_depth_jitstress 1.60s 4.37s 2.73x slower

wasm has no max-pypy-ratio gate at all, so this floor is the only instrument
that can see a wasm-only slowdown — and it was armed on 3 fixtures until now.
The baselines here are re-recorded (pinning the higher abort count) so this PR
is not blocked on someone else's defect; the rise is stated rather than absorbed.
Which of #936 / #935 / #914 / #930 causes it is not bisected.

Non-vacuity

Each gate was shown to fail on the shape it targets, not merely to exist:

gate trigger result
guard_failures band a binary carrying the nested_break_bridge_resume_hazard narrowing FAIL … loops_aborted 0 -> 1, guard_failures 1757 -> 2613
— control the same binary without it PASS 0.16s (8.4x)
loops_compiled fall baseline pinned one loop higher FAIL … loops_compiled 3 -> 2
missing baseline baseline file removed FAIL … no committed jit-stats baseline (…)

What this gate family cannot see

It watches what the JIT compiles, never how well — _jit_stats_snapshot's own
docstring says so. Measured: #933 took type_immutable_reject from ~35x to ~1x
by removing a per-iteration call_may_force residual, and all four counters are
identical before and after. That class belongs to max-pypy-ratio, which
#933 tightened 152 -> 15 for the same fixture. The two gates do not substitute
for each other.

3. The baseline commit disabled both automated reviewers

Committing ~1000 baselines put this PR at 1027 changed files. CodeRabbit skipped
it outright ("927 over the limit of 100") and the Codex parity review listed all
1027 names into its prompt and then exited 1 with no report.

.jitstats files are generated golden data with no RPython/PyPy counterpart, so
no parity finding can ever cite one. .github/workflows/codex-review-run.yml now
builds the authoritative list with
git diff --name-only upstream/main -- . ':(exclude)*.jitstats' and reports the
withheld count in the prompt header and in the empty-diff message;
.github/codex-review-prompt.md carries the same exclusion for the local
/codex-review path. On this branch that is 1132 -> 112 files.

CodeRabbit's own path_filters is deliberately not added — whether its
file-count cap applies before or after filtering is unverified, and shipping a
third-party config whose effect cannot be checked is worse than naming the gap.

Verification

pyre/check.pydynasm 359/359 · cranelift 359/359 · wasm 355/355, run
against the committed state with all gates armed.

Rebased onto origin/main (e6e2b25a715). Conflicts: one file across two
rebases. pyre-interpreter/src/baseobjspace.rs resolved by dropping our commit
in favour of #933 — both fix the same misjudgement of type's own
__setattr__/__delattr__ (the init_type_type slot pair forwarding to
object_setattr/object_delattr for the Carlo Verre hackcheck), but #933 also
emits the metaclass version_tag guard the fold needs to be sound against
type-dict mutation, which ours lacked. majit-backend-dynasm/src/runner.rs
resolved to main in all three regions: main landed the same cached
diagnostic-env gates in lib.rs:76,83, beside the majit_log_enabled our own
comment cited as the model, and carrying the same measured rationale — leaving
only the GC-side gate and a pyjitpl.rs comment correction from our commit.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 1031 files, which is 931 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 1d108fe3-e3ca-4e20-910e-bb79cec47d2d

📥 Commits

Reviewing files that changed from the base of the PR and between e6e2b25 and a115ce6.

📒 Files selected for processing (1031)
  • .github/codex-review-prompt.md
  • .github/workflows/codex-review-run.yml
  • majit/majit-gc/src/collector.rs
  • majit/majit-gc/src/lib.rs
  • majit/majit-metainterp/src/pyjitpl.rs
  • pyre/.gitignore
  • pyre/bench/synth/abstractmethods_metaclass_getattr.cranelift.jitstats
  • pyre/bench/synth/abstractmethods_metaclass_getattr.dynasm.jitstats
  • pyre/bench/synth/abstractmethods_metaclass_getattr.wasm.jitstats
  • pyre/bench/synth/abstractmethods_nonstring_name.cranelift.jitstats
  • pyre/bench/synth/abstractmethods_nonstring_name.dynasm.jitstats
  • pyre/bench/synth/abstractmethods_nonstring_name.wasm.jitstats
  • pyre/bench/synth/aiter_anext.cranelift.jitstats
  • pyre/bench/synth/aiter_anext.dynasm.jitstats
  • pyre/bench/synth/aiter_anext.wasm.jitstats
  • pyre/bench/synth/arith_int_bool.cranelift.jitstats
  • pyre/bench/synth/arith_int_bool.dynasm.jitstats
  • pyre/bench/synth/arith_int_bool.wasm.jitstats
  • pyre/bench/synth/array_deopt_resume.cranelift.jitstats
  • pyre/bench/synth/array_deopt_resume.dynasm.jitstats
  • pyre/bench/synth/array_deopt_resume.wasm.jitstats
  • pyre/bench/synth/assert_in_loop.cranelift.jitstats
  • pyre/bench/synth/assert_in_loop.dynasm.jitstats
  • pyre/bench/synth/assert_in_loop.wasm.jitstats
  • pyre/bench/synth/ast_compile_roundtrip.cranelift.jitstats
  • pyre/bench/synth/ast_compile_roundtrip.dynasm.jitstats
  • pyre/bench/synth/ast_compile_roundtrip.wasm.jitstats
  • pyre/bench/synth/attr_cache_invalidation.cranelift.jitstats
  • pyre/bench/synth/attr_cache_invalidation.dynasm.jitstats
  • pyre/bench/synth/attr_cache_invalidation.wasm.jitstats
  • pyre/bench/synth/attr_delete.cranelift.jitstats
  • pyre/bench/synth/attr_delete.dynasm.jitstats
  • pyre/bench/synth/attr_delete.wasm.jitstats
  • pyre/bench/synth/attr_instance_shadows_class.cranelift.jitstats
  • pyre/bench/synth/attr_instance_shadows_class.dynasm.jitstats
  • pyre/bench/synth/attr_instance_shadows_class.wasm.jitstats
  • pyre/bench/synth/attr_store_add_transition.cranelift.jitstats
  • pyre/bench/synth/attr_store_add_transition.dynasm.jitstats
  • pyre/bench/synth/attr_store_add_transition.wasm.jitstats
  • pyre/bench/synth/attr_store_cache.cranelift.jitstats
  • pyre/bench/synth/attr_store_cache.dynasm.jitstats
  • pyre/bench/synth/attr_store_cache.wasm.jitstats
  • pyre/bench/synth/bases_reassign_cache.cranelift.jitstats
  • pyre/bench/synth/bases_reassign_cache.dynasm.jitstats
  • pyre/bench/synth/bases_reassign_cache.wasm.jitstats
  • pyre/bench/synth/binary_int_overflow_local_resume.cranelift.jitstats
  • pyre/bench/synth/binary_int_overflow_local_resume.dynasm.jitstats
  • pyre/bench/synth/binary_int_overflow_local_resume.wasm.jitstats
  • pyre/bench/synth/binary_slice_index.cranelift.jitstats
  • pyre/bench/synth/binary_slice_index.dynasm.jitstats
  • pyre/bench/synth/binary_slice_index.wasm.jitstats
  • pyre/bench/synth/blackhole_inlined_callee_local_after_escape.cranelift.jitstats
  • pyre/bench/synth/blackhole_inlined_callee_local_after_escape.dynasm.jitstats
  • pyre/bench/synth/blackhole_inlined_callee_local_after_escape.wasm.jitstats
  • pyre/bench/synth/bool_dunder_error_no_leak.cranelift.jitstats
  • pyre/bench/synth/bool_dunder_error_no_leak.dynasm.jitstats
  • pyre/bench/synth/bool_dunder_error_no_leak.wasm.jitstats
  • pyre/bench/synth/bound_method_builtin_fold.cranelift.jitstats
  • pyre/bench/synth/bound_method_builtin_fold.dynasm.jitstats
  • pyre/bench/synth/bound_method_builtin_fold.wasm.jitstats
  • pyre/bench/synth/break_except_live_local.cranelift.jitstats
  • pyre/bench/synth/break_except_live_local.dynasm.jitstats
  • pyre/bench/synth/break_except_live_local.wasm.jitstats
  • pyre/bench/synth/bridge_branchy_callee.cranelift.jitstats
  • pyre/bench/synth/bridge_branchy_callee.dynasm.jitstats
  • pyre/bench/synth/bridge_branchy_callee.wasm.jitstats
  • pyre/bench/synth/bridge_global_fold_invalidate_hot.cranelift.jitstats
  • pyre/bench/synth/bridge_global_fold_invalidate_hot.dynasm.jitstats
  • pyre/bench/synth/bridge_global_fold_invalidate_hot.wasm.jitstats
  • pyre/bench/synth/bridge_recursion_overflow.cranelift.jitstats
  • pyre/bench/synth/bridge_recursion_overflow.dynasm.jitstats
  • pyre/bench/synth/bridge_recursion_overflow.wasm.jitstats
  • pyre/bench/synth/build_class_surrogate_namespace.cranelift.jitstats
  • pyre/bench/synth/build_class_surrogate_namespace.dynasm.jitstats
  • pyre/bench/synth/build_class_surrogate_namespace.wasm.jitstats
  • pyre/bench/synth/build_container_return_resume.cranelift.jitstats
  • pyre/bench/synth/build_container_return_resume.dynasm.jitstats
  • pyre/bench/synth/build_container_return_resume.wasm.jitstats
  • pyre/bench/synth/build_list_resume.cranelift.jitstats
  • pyre/bench/synth/build_list_resume.dynasm.jitstats
  • pyre/bench/synth/build_list_resume.wasm.jitstats
  • pyre/bench/synth/build_set_hashability.cranelift.jitstats
  • pyre/bench/synth/build_set_hashability.dynasm.jitstats
  • pyre/bench/synth/build_set_hashability.wasm.jitstats
  • pyre/bench/synth/builtin_type_surface.cranelift.jitstats
  • pyre/bench/synth/builtin_type_surface.dynasm.jitstats
  • pyre/bench/synth/builtin_type_surface.wasm.jitstats
  • pyre/bench/synth/bytes_split_whitespace_maxsplit.cranelift.jitstats
  • pyre/bench/synth/bytes_split_whitespace_maxsplit.dynasm.jitstats
  • pyre/bench/synth/bytes_split_whitespace_maxsplit.wasm.jitstats
  • pyre/bench/synth/ca_bridge_multiframe_resume_double_call.cranelift.jitstats
  • pyre/bench/synth/ca_bridge_multiframe_resume_double_call.dynasm.jitstats
  • pyre/bench/synth/ca_bridge_multiframe_resume_double_call.wasm.jitstats
  • pyre/bench/synth/call_ex_kwargs_mapping.cranelift.jitstats
  • pyre/bench/synth/call_ex_kwargs_mapping.dynasm.jitstats
  • pyre/bench/synth/call_ex_kwargs_mapping.wasm.jitstats
  • pyre/bench/synth/call_kw_hot_loop.cranelift.jitstats
  • pyre/bench/synth/call_kw_hot_loop.dynasm.jitstats
  • pyre/bench/synth/call_kw_hot_loop.wasm.jitstats
  • pyre/bench/synth/call_slot_descriptor_protocol.cranelift.jitstats
  • pyre/bench/synth/call_slot_descriptor_protocol.dynasm.jitstats
  • pyre/bench/synth/call_slot_descriptor_protocol.wasm.jitstats
  • pyre/bench/synth/call_star_forms_inlined_callee.cranelift.jitstats
  • pyre/bench/synth/call_star_forms_inlined_callee.dynasm.jitstats
  • pyre/bench/synth/call_star_forms_inlined_callee.wasm.jitstats
  • pyre/bench/synth/callable_iterator_type.cranelift.jitstats
  • pyre/bench/synth/callable_iterator_type.dynasm.jitstats
  • pyre/bench/synth/callable_iterator_type.wasm.jitstats
  • pyre/bench/synth/callee_return_side_effect.cranelift.jitstats
  • pyre/bench/synth/callee_return_side_effect.dynasm.jitstats
  • pyre/bench/synth/callee_return_side_effect.wasm.jitstats
  • pyre/bench/synth/callee_store_global_read_after_call.cranelift.jitstats
  • pyre/bench/synth/callee_store_global_read_after_call.dynasm.jitstats
  • pyre/bench/synth/callee_store_global_read_after_call.wasm.jitstats
  • pyre/bench/synth/calls_closures.cranelift.jitstats
  • pyre/bench/synth/calls_closures.dynasm.jitstats
  • pyre/bench/synth/calls_closures.wasm.jitstats
  • pyre/bench/synth/chained_comparison.cranelift.jitstats
  • pyre/bench/synth/chained_comparison.dynasm.jitstats
  • pyre/bench/synth/chained_comparison.wasm.jitstats
  • pyre/bench/synth/check_exc_match_invalid_class.cranelift.jitstats
  • pyre/bench/synth/check_exc_match_invalid_class.dynasm.jitstats
  • pyre/bench/synth/check_exc_match_invalid_class.wasm.jitstats
  • pyre/bench/synth/class_attrs_methods.cranelift.jitstats
  • pyre/bench/synth/class_attrs_methods.dynasm.jitstats
  • pyre/bench/synth/class_attrs_methods.wasm.jitstats
  • pyre/bench/synth/class_reassign_hot.cranelift.jitstats
  • pyre/bench/synth/class_reassign_hot.dynasm.jitstats
  • pyre/bench/synth/class_reassign_hot.wasm.jitstats
  • pyre/bench/synth/classmethod_protocol_hot.cranelift.jitstats
  • pyre/bench/synth/classmethod_protocol_hot.dynasm.jitstats
  • pyre/bench/synth/classmethod_protocol_hot.wasm.jitstats
  • pyre/bench/synth/classmethod_type_dispatch_hot.cranelift.jitstats
  • pyre/bench/synth/classmethod_type_dispatch_hot.dynasm.jitstats
  • pyre/bench/synth/classmethod_type_dispatch_hot.wasm.jitstats
  • pyre/bench/synth/closure_freevar_branch_resume.cranelift.jitstats
  • pyre/bench/synth/closure_freevar_branch_resume.dynasm.jitstats
  • pyre/bench/synth/closure_freevar_branch_resume.wasm.jitstats
  • pyre/bench/synth/closure_per_call.cranelift.jitstats
  • pyre/bench/synth/closure_per_call.dynasm.jitstats
  • pyre/bench/synth/closure_per_call.wasm.jitstats
  • pyre/bench/synth/complex_from_index.cranelift.jitstats
  • pyre/bench/synth/complex_from_index.dynasm.jitstats
  • pyre/bench/synth/complex_from_index.wasm.jitstats
  • pyre/bench/synth/complex_real_imag.cranelift.jitstats
  • pyre/bench/synth/complex_real_imag.dynasm.jitstats
  • pyre/bench/synth/complex_real_imag.wasm.jitstats
  • pyre/bench/synth/comprehension_accumulators.cranelift.jitstats
  • pyre/bench/synth/comprehension_accumulators.dynasm.jitstats
  • pyre/bench/synth/comprehension_accumulators.wasm.jitstats
  • pyre/bench/synth/comprehension_module_scope.cranelift.jitstats
  • pyre/bench/synth/comprehension_module_scope.dynasm.jitstats
  • pyre/bench/synth/comprehension_module_scope.wasm.jitstats
  • pyre/bench/synth/comprehension_object_append_hot.dynasm.jitstats
  • pyre/bench/synth/comprehension_param_range_call_flush.cranelift.jitstats
  • pyre/bench/synth/comprehension_param_range_call_flush.dynasm.jitstats
  • pyre/bench/synth/comprehension_param_range_call_flush.wasm.jitstats
  • pyre/bench/synth/condexpr_heap_const_merge.cranelift.jitstats
  • pyre/bench/synth/condexpr_heap_const_merge.dynasm.jitstats
  • pyre/bench/synth/condexpr_heap_const_merge.wasm.jitstats
  • pyre/bench/synth/context_manager.cranelift.jitstats
  • pyre/bench/synth/context_manager.dynasm.jitstats
  • pyre/bench/synth/context_manager.wasm.jitstats
  • pyre/bench/synth/defaults_reassigned_midloop.cranelift.jitstats
  • pyre/bench/synth/defaults_reassigned_midloop.dynasm.jitstats
  • pyre/bench/synth/defaults_reassigned_midloop.wasm.jitstats
  • pyre/bench/synth/del_cellvar_walk_commit.cranelift.jitstats
  • pyre/bench/synth/del_cellvar_walk_commit.dynasm.jitstats
  • pyre/bench/synth/del_cellvar_walk_commit.wasm.jitstats
  • pyre/bench/synth/delete_negative_open_slice_hot.cranelift.jitstats
  • pyre/bench/synth/delete_negative_open_slice_hot.dynasm.jitstats
  • pyre/bench/synth/delete_negative_open_slice_hot.wasm.jitstats
  • pyre/bench/synth/dict_ctor_consume.cranelift.jitstats
  • pyre/bench/synth/dict_ctor_consume.dynasm.jitstats
  • pyre/bench/synth/dict_ctor_consume.wasm.jitstats
  • pyre/bench/synth/dict_hash_protocol.cranelift.jitstats
  • pyre/bench/synth/dict_hash_protocol.dynasm.jitstats
  • pyre/bench/synth/dict_hash_protocol.wasm.jitstats
  • pyre/bench/synth/dict_set.cranelift.jitstats
  • pyre/bench/synth/dict_set.dynasm.jitstats
  • pyre/bench/synth/dict_set.wasm.jitstats
  • pyre/bench/synth/dict_set_key_eq_operand_order.cranelift.jitstats
  • pyre/bench/synth/dict_set_key_eq_operand_order.dynasm.jitstats
  • pyre/bench/synth/dict_set_key_eq_operand_order.wasm.jitstats
  • pyre/bench/synth/dict_update_hot.cranelift.jitstats
  • pyre/bench/synth/dict_update_hot.dynasm.jitstats
  • pyre/bench/synth/dict_update_hot.wasm.jitstats
  • pyre/bench/synth/dict_update_source_mutation.cranelift.jitstats
  • pyre/bench/synth/dict_update_source_mutation.dynasm.jitstats
  • pyre/bench/synth/dict_update_source_mutation.wasm.jitstats
  • pyre/bench/synth/dict_view_set_ops.cranelift.jitstats
  • pyre/bench/synth/dict_view_set_ops.dynasm.jitstats
  • pyre/bench/synth/dict_view_set_ops.wasm.jitstats
  • pyre/bench/synth/dir_custom.cranelift.jitstats
  • pyre/bench/synth/dir_custom.dynasm.jitstats
  • pyre/bench/synth/dir_custom.wasm.jitstats
  • pyre/bench/synth/dir_dict_class_attrs.cranelift.jitstats
  • pyre/bench/synth/dir_dict_class_attrs.dynasm.jitstats
  • pyre/bench/synth/dir_dict_class_attrs.wasm.jitstats
  • pyre/bench/synth/dir_full_mro.cranelift.jitstats
  • pyre/bench/synth/dir_full_mro.dynasm.jitstats
  • pyre/bench/synth/dir_full_mro.wasm.jitstats
  • pyre/bench/synth/dunder_repr_str_errors.cranelift.jitstats
  • pyre/bench/synth/dunder_repr_str_errors.dynasm.jitstats
  • pyre/bench/synth/dunder_repr_str_errors.wasm.jitstats
  • pyre/bench/synth/enumerate_bignum_start.cranelift.jitstats
  • pyre/bench/synth/enumerate_bignum_start.dynasm.jitstats
  • pyre/bench/synth/enumerate_bignum_start.wasm.jitstats
  • pyre/bench/synth/exc_bridge_entry_guard_not_removed.cranelift.jitstats
  • pyre/bench/synth/exc_bridge_entry_guard_not_removed.dynasm.jitstats
  • pyre/bench/synth/exc_bridge_entry_guard_not_removed.wasm.jitstats
  • pyre/bench/synth/exc_caught_in_callee_return_loop.cranelift.jitstats
  • pyre/bench/synth/exc_caught_in_callee_return_loop.dynasm.jitstats
  • pyre/bench/synth/exc_caught_in_callee_return_loop.wasm.jitstats
  • pyre/bench/synth/exc_in_loop_divzero_continue.cranelift.jitstats
  • pyre/bench/synth/exc_in_loop_divzero_continue.dynasm.jitstats
  • pyre/bench/synth/exc_in_loop_divzero_continue.wasm.jitstats
  • pyre/bench/synth/exc_info_module_loop_hot.cranelift.jitstats
  • pyre/bench/synth/exc_info_module_loop_hot.dynasm.jitstats
  • pyre/bench/synth/exc_info_module_loop_hot.wasm.jitstats
  • pyre/bench/synth/exc_mixed_classes_bridge_flavor.cranelift.jitstats
  • pyre/bench/synth/exc_mixed_classes_bridge_flavor.dynasm.jitstats
  • pyre/bench/synth/exc_mixed_classes_bridge_flavor.wasm.jitstats
  • pyre/bench/synth/except_star.cranelift.jitstats
  • pyre/bench/synth/except_star.dynasm.jitstats
  • pyre/bench/synth/except_star.wasm.jitstats
  • pyre/bench/synth/except_tuple_clause_hot.cranelift.jitstats
  • pyre/bench/synth/except_tuple_clause_hot.dynasm.jitstats
  • pyre/bench/synth/except_tuple_clause_hot.wasm.jitstats
  • pyre/bench/synth/exception_args_virtual.cranelift.jitstats
  • pyre/bench/synth/exception_args_virtual.dynasm.jitstats
  • pyre/bench/synth/exception_args_virtual.wasm.jitstats
  • pyre/bench/synth/exception_as_cell_cleanup.cranelift.jitstats
  • pyre/bench/synth/exception_as_cell_cleanup.dynasm.jitstats
  • pyre/bench/synth/exception_as_cell_cleanup.wasm.jitstats
  • pyre/bench/synth/exception_bare_reraise_nested_outer.cranelift.jitstats
  • pyre/bench/synth/exception_bare_reraise_nested_outer.dynasm.jitstats
  • pyre/bench/synth/exception_bare_reraise_nested_outer.wasm.jitstats
  • pyre/bench/synth/exception_bare_reraise_restore.cranelift.jitstats
  • pyre/bench/synth/exception_bare_reraise_restore.dynasm.jitstats
  • pyre/bench/synth/exception_bare_reraise_restore.wasm.jitstats
  • pyre/bench/synth/exception_bridge_traceback_head.cranelift.jitstats
  • pyre/bench/synth/exception_bridge_traceback_head.dynasm.jitstats
  • pyre/bench/synth/exception_bridge_traceback_head.wasm.jitstats
  • pyre/bench/synth/exception_catching_frame_tb_node.cranelift.jitstats
  • pyre/bench/synth/exception_catching_frame_tb_node.dynasm.jitstats
  • pyre/bench/synth/exception_catching_frame_tb_node.wasm.jitstats
  • pyre/bench/synth/exception_const_operand_resume.cranelift.jitstats
  • pyre/bench/synth/exception_const_operand_resume.dynasm.jitstats
  • pyre/bench/synth/exception_const_operand_resume.wasm.jitstats
  • pyre/bench/synth/exception_context_chain_inhandler.cranelift.jitstats
  • pyre/bench/synth/exception_context_chain_inhandler.dynasm.jitstats
  • pyre/bench/synth/exception_context_chain_inhandler.wasm.jitstats
  • pyre/bench/synth/exception_dict_slot_reject.cranelift.jitstats
  • pyre/bench/synth/exception_dict_slot_reject.dynasm.jitstats
  • pyre/bench/synth/exception_dict_slot_reject.wasm.jitstats
  • pyre/bench/synth/exception_escape_caller_frame_tb_node.cranelift.jitstats
  • pyre/bench/synth/exception_escape_caller_frame_tb_node.dynasm.jitstats
  • pyre/bench/synth/exception_escape_caller_frame_tb_node.wasm.jitstats
  • pyre/bench/synth/exception_escape_inlined_midframe_tb_node.cranelift.jitstats
  • pyre/bench/synth/exception_escape_inlined_midframe_tb_node.dynasm.jitstats
  • pyre/bench/synth/exception_escape_inlined_midframe_tb_node.wasm.jitstats
  • pyre/bench/synth/exception_group_type.cranelift.jitstats
  • pyre/bench/synth/exception_group_type.dynasm.jitstats
  • pyre/bench/synth/exception_group_type.wasm.jitstats
  • pyre/bench/synth/exception_inline_callee_tb_frames.cranelift.jitstats
  • pyre/bench/synth/exception_inline_callee_tb_frames.dynasm.jitstats
  • pyre/bench/synth/exception_inline_callee_tb_frames.wasm.jitstats
  • pyre/bench/synth/exception_inlined_callee_caught.cranelift.jitstats
  • pyre/bench/synth/exception_inlined_callee_caught.dynasm.jitstats
  • pyre/bench/synth/exception_inlined_callee_caught.wasm.jitstats
  • pyre/bench/synth/exception_loop_warmup.cranelift.jitstats
  • pyre/bench/synth/exception_loop_warmup.dynasm.jitstats
  • pyre/bench/synth/exception_loop_warmup.wasm.jitstats
  • pyre/bench/synth/exception_metadata_hot.cranelift.jitstats
  • pyre/bench/synth/exception_metadata_hot.dynasm.jitstats
  • pyre/bench/synth/exception_metadata_hot.wasm.jitstats
  • pyre/bench/synth/exception_metadata_jitstress.cranelift.jitstats
  • pyre/bench/synth/exception_metadata_jitstress.dynasm.jitstats
  • pyre/bench/synth/exception_metadata_jitstress.wasm.jitstats
  • pyre/bench/synth/exception_multi_handler_warmup.cranelift.jitstats
  • pyre/bench/synth/exception_multi_handler_warmup.dynasm.jitstats
  • pyre/bench/synth/exception_multi_handler_warmup.wasm.jitstats
  • pyre/bench/synth/exception_nested_exc_info_restore.cranelift.jitstats
  • pyre/bench/synth/exception_nested_exc_info_restore.dynasm.jitstats
  • pyre/bench/synth/exception_nested_exc_info_restore.wasm.jitstats
  • pyre/bench/synth/exception_oserror_fields.cranelift.jitstats
  • pyre/bench/synth/exception_oserror_fields.dynasm.jitstats
  • pyre/bench/synth/exception_oserror_fields.wasm.jitstats
  • pyre/bench/synth/exception_raise_caught_same_frame_tb.cranelift.jitstats
  • pyre/bench/synth/exception_raise_caught_same_frame_tb.dynasm.jitstats
  • pyre/bench/synth/exception_raise_caught_same_frame_tb.wasm.jitstats
  • pyre/bench/synth/exception_reduce.cranelift.jitstats
  • pyre/bench/synth/exception_reduce.dynasm.jitstats
  • pyre/bench/synth/exception_reduce.wasm.jitstats
  • pyre/bench/synth/exception_reentry_guard_finally_residual.cranelift.jitstats
  • pyre/bench/synth/exception_reentry_guard_finally_residual.dynasm.jitstats
  • pyre/bench/synth/exception_reentry_guard_finally_residual.wasm.jitstats
  • pyre/bench/synth/exception_reraise_tb_depth_hot.cranelift.jitstats
  • pyre/bench/synth/exception_reraise_tb_depth_hot.dynasm.jitstats
  • pyre/bench/synth/exception_reraise_tb_depth_hot.wasm.jitstats
  • pyre/bench/synth/exception_reraise_tb_depth_jitstress.cranelift.jitstats
  • pyre/bench/synth/exception_reraise_tb_depth_jitstress.dynasm.jitstats
  • pyre/bench/synth/exception_reraise_tb_depth_jitstress.wasm.jitstats
  • pyre/bench/synth/exception_residual_raise_caught_in_frame.cranelift.jitstats
  • pyre/bench/synth/exception_residual_raise_caught_in_frame.dynasm.jitstats
  • pyre/bench/synth/exception_residual_raise_caught_in_frame.wasm.jitstats
  • pyre/bench/synth/exception_subclass_attrs.cranelift.jitstats
  • pyre/bench/synth/exception_subclass_attrs.dynasm.jitstats
  • pyre/bench/synth/exception_subclass_attrs.wasm.jitstats
  • pyre/bench/synth/exception_traceback_frame_lineno.cranelift.jitstats
  • pyre/bench/synth/exception_traceback_frame_lineno.dynasm.jitstats
  • pyre/bench/synth/exception_traceback_frame_lineno.wasm.jitstats
  • pyre/bench/synth/exception_traceback_lineno_chain.cranelift.jitstats
  • pyre/bench/synth/exception_traceback_lineno_chain.dynasm.jitstats
  • pyre/bench/synth/exception_traceback_lineno_chain.wasm.jitstats
  • pyre/bench/synth/exception_traceback_loop_forms.cranelift.jitstats
  • pyre/bench/synth/exception_traceback_loop_forms.dynasm.jitstats
  • pyre/bench/synth/exception_traceback_loop_forms.wasm.jitstats
  • pyre/bench/synth/exception_try_call_inlined_callee_raise.cranelift.jitstats
  • pyre/bench/synth/exception_try_call_inlined_callee_raise.dynasm.jitstats
  • pyre/bench/synth/exception_try_call_inlined_callee_raise.wasm.jitstats
  • pyre/bench/synth/exception_value_op_caught.cranelift.jitstats
  • pyre/bench/synth/exception_value_op_caught.dynasm.jitstats
  • pyre/bench/synth/exception_value_op_caught.wasm.jitstats
  • pyre/bench/synth/exceptions.cranelift.jitstats
  • pyre/bench/synth/exceptions.dynasm.jitstats
  • pyre/bench/synth/exceptions.wasm.jitstats
  • pyre/bench/synth/exec_defined_global_read.cranelift.jitstats
  • pyre/bench/synth/exec_defined_global_read.dynasm.jitstats
  • pyre/bench/synth/exec_defined_global_read.wasm.jitstats
  • pyre/bench/synth/fast_local_swap.cranelift.jitstats
  • pyre/bench/synth/fast_local_swap.dynasm.jitstats
  • pyre/bench/synth/fast_local_swap.wasm.jitstats
  • pyre/bench/synth/finally_bare_raise.cranelift.jitstats
  • pyre/bench/synth/finally_bare_raise.dynasm.jitstats
  • pyre/bench/synth/finally_bare_raise.wasm.jitstats
  • pyre/bench/synth/float_builtin_hot.cranelift.jitstats
  • pyre/bench/synth/float_builtin_hot.dynasm.jitstats
  • pyre/bench/synth/float_builtin_hot.wasm.jitstats
  • pyre/bench/synth/float_div_zero_caught_loop.cranelift.jitstats
  • pyre/bench/synth/float_div_zero_caught_loop.dynasm.jitstats
  • pyre/bench/synth/float_div_zero_caught_loop.wasm.jitstats
  • pyre/bench/synth/float_pow_overflow_exp.cranelift.jitstats
  • pyre/bench/synth/float_pow_overflow_exp.dynasm.jitstats
  • pyre/bench/synth/float_pow_overflow_exp.wasm.jitstats
  • pyre/bench/synth/float_subclass_binop_dispatch.cranelift.jitstats
  • pyre/bench/synth/float_subclass_binop_dispatch.dynasm.jitstats
  • pyre/bench/synth/float_subclass_binop_dispatch.wasm.jitstats
  • pyre/bench/synth/for_iter_conditional_store_bridge.cranelift.jitstats
  • pyre/bench/synth/for_iter_conditional_store_bridge.dynasm.jitstats
  • pyre/bench/synth/for_iter_conditional_store_bridge.wasm.jitstats
  • pyre/bench/synth/for_iter_select_receiver_swap.cranelift.jitstats
  • pyre/bench/synth/for_iter_select_receiver_swap.dynasm.jitstats
  • pyre/bench/synth/for_iter_select_receiver_swap.wasm.jitstats
  • pyre/bench/synth/foriter_call_body.cranelift.jitstats
  • pyre/bench/synth/foriter_call_body.dynasm.jitstats
  • pyre/bench/synth/foriter_call_body.wasm.jitstats
  • pyre/bench/synth/foriter_call_resume_drops_iteration.cranelift.jitstats
  • pyre/bench/synth/foriter_call_resume_drops_iteration.dynasm.jitstats
  • pyre/bench/synth/foriter_call_resume_drops_iteration.py
  • pyre/bench/synth/foriter_call_resume_drops_iteration.wasm.jitstats
  • pyre/bench/synth/foriter_exempt_nested_foriter.cranelift.jitstats
  • pyre/bench/synth/foriter_exempt_nested_foriter.dynasm.jitstats
  • pyre/bench/synth/foriter_exempt_nested_foriter.wasm.jitstats
  • pyre/bench/synth/foriter_exempt_shared_generator.cranelift.jitstats
  • pyre/bench/synth/foriter_exempt_shared_generator.dynasm.jitstats
  • pyre/bench/synth/foriter_exempt_shared_generator.wasm.jitstats
  • pyre/bench/synth/foriter_in_while.cranelift.jitstats
  • pyre/bench/synth/foriter_in_while.dynasm.jitstats
  • pyre/bench/synth/foriter_in_while.wasm.jitstats
  • pyre/bench/synth/foriter_inplace_immutable.cranelift.jitstats
  • pyre/bench/synth/foriter_inplace_immutable.dynasm.jitstats
  • pyre/bench/synth/foriter_inplace_immutable.wasm.jitstats
  • pyre/bench/synth/foriter_loadglobal_body.cranelift.jitstats
  • pyre/bench/synth/foriter_loadglobal_body.dynasm.jitstats
  • pyre/bench/synth/foriter_loadglobal_body.wasm.jitstats
  • pyre/bench/synth/foriter_user_iter_kept_stack.cranelift.jitstats
  • pyre/bench/synth/foriter_user_iter_kept_stack.dynasm.jitstats
  • pyre/bench/synth/foriter_user_iter_kept_stack.wasm.jitstats
  • pyre/bench/synth/format_z_negative_zero.cranelift.jitstats
  • pyre/bench/synth/format_z_negative_zero.dynasm.jitstats
  • pyre/bench/synth/format_z_negative_zero.wasm.jitstats
  • pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.cranelift.jitstats
  • pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.dynasm.jitstats
  • pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.wasm.jitstats
  • pyre/bench/synth/gc_deque_backing_list.cranelift.jitstats
  • pyre/bench/synth/gc_deque_backing_list.dynasm.jitstats
  • pyre/bench/synth/gc_deque_backing_list.wasm.jitstats
  • pyre/bench/synth/gc_iterator_source_drop.cranelift.jitstats
  • pyre/bench/synth/gc_iterator_source_drop.dynasm.jitstats
  • pyre/bench/synth/gc_iterator_source_drop.wasm.jitstats
  • pyre/bench/synth/generator_pep479.cranelift.jitstats
  • pyre/bench/synth/generator_pep479.dynasm.jitstats
  • pyre/bench/synth/generator_pep479.wasm.jitstats
  • pyre/bench/synth/generator_tree_recursion.cranelift.jitstats
  • pyre/bench/synth/generator_tree_recursion.dynasm.jitstats
  • pyre/bench/synth/generator_tree_recursion.wasm.jitstats
  • pyre/bench/synth/getattr_attribute_fallbacks.cranelift.jitstats
  • pyre/bench/synth/getattr_attribute_fallbacks.dynasm.jitstats
  • pyre/bench/synth/getattr_attribute_fallbacks.wasm.jitstats
  • pyre/bench/synth/getattr_hook_binding.cranelift.jitstats
  • pyre/bench/synth/getattr_hook_binding.dynasm.jitstats
  • pyre/bench/synth/getattr_hook_binding.wasm.jitstats
  • pyre/bench/synth/getattr_surrogate_hook.cranelift.jitstats
  • pyre/bench/synth/getattr_surrogate_hook.dynasm.jitstats
  • pyre/bench/synth/getattr_surrogate_hook.wasm.jitstats
  • pyre/bench/synth/getattribute_intercepts_dunder.cranelift.jitstats
  • pyre/bench/synth/getattribute_intercepts_dunder.dynasm.jitstats
  • pyre/bench/synth/getattribute_intercepts_dunder.wasm.jitstats
  • pyre/bench/synth/getattribute_override_no_bind.cranelift.jitstats
  • pyre/bench/synth/getattribute_override_no_bind.dynasm.jitstats
  • pyre/bench/synth/getattribute_override_no_bind.wasm.jitstats
  • pyre/bench/synth/getframe_caller_locals_nested_compiled_callee.cranelift.jitstats
  • pyre/bench/synth/getframe_caller_locals_nested_compiled_callee.dynasm.jitstats
  • pyre/bench/synth/getframe_force_cancel_journal.cranelift.jitstats
  • pyre/bench/synth/getframe_force_cancel_journal.dynasm.jitstats
  • pyre/bench/synth/getframe_force_cancel_journal.wasm.jitstats
  • pyre/bench/synth/getframe_inline_subwalk_multiframe.cranelift.jitstats
  • pyre/bench/synth/getframe_inline_subwalk_multiframe.dynasm.jitstats
  • pyre/bench/synth/getframe_inline_subwalk_multiframe.wasm.jitstats
  • pyre/bench/synth/getframe_inlined_callee_own_frame.cranelift.jitstats
  • pyre/bench/synth/getframe_inlined_callee_own_frame.dynasm.jitstats
  • pyre/bench/synth/getframe_inlined_callee_own_frame.wasm.jitstats
  • pyre/bench/synth/getframe_residual_callee_own_frame.cranelift.jitstats
  • pyre/bench/synth/getframe_residual_callee_own_frame.dynasm.jitstats
  • pyre/bench/synth/getframe_residual_callee_own_frame.wasm.jitstats
  • pyre/bench/synth/getframe_root_loop_force_blackhole_crn.cranelift.jitstats
  • pyre/bench/synth/getframe_root_loop_force_blackhole_crn.dynasm.jitstats
  • pyre/bench/synth/getframe_root_loop_force_blackhole_crn.wasm.jitstats
  • pyre/bench/synth/getframe_root_loop_force_blackhole_crn_nonidempotent.cranelift.jitstats
  • pyre/bench/synth/getframe_root_loop_force_blackhole_crn_nonidempotent.dynasm.jitstats
  • pyre/bench/synth/getframe_root_loop_force_blackhole_crn_nonidempotent.wasm.jitstats
  • pyre/bench/synth/getframe_root_loop_force_while_merge.cranelift.jitstats
  • pyre/bench/synth/getframe_root_loop_force_while_merge.dynasm.jitstats
  • pyre/bench/synth/getframe_root_loop_force_while_merge.wasm.jitstats
  • pyre/bench/synth/getframe_stored_fback_walk.cranelift.jitstats
  • pyre/bench/synth/getframe_stored_fback_walk.dynasm.jitstats
  • pyre/bench/synth/getframe_stored_fback_walk.wasm.jitstats
  • pyre/bench/synth/getframe_while_caller_locals_across_subwalk.cranelift.jitstats
  • pyre/bench/synth/getframe_while_caller_locals_across_subwalk.dynasm.jitstats
  • pyre/bench/synth/getframe_while_caller_locals_across_subwalk.wasm.jitstats
  • pyre/bench/synth/getframe_while_captured_frame_outlives_call.cranelift.jitstats
  • pyre/bench/synth/getframe_while_captured_frame_outlives_call.dynasm.jitstats
  • pyre/bench/synth/getframe_while_captured_frame_outlives_call.wasm.jitstats
  • pyre/bench/synth/getframe_while_escaping_read_frame_identity.cranelift.jitstats
  • pyre/bench/synth/getframe_while_escaping_read_frame_identity.dynasm.jitstats
  • pyre/bench/synth/getframe_while_escaping_read_frame_identity.wasm.jitstats
  • pyre/bench/synth/getframe_while_inlined_callee_subwalk.cranelift.jitstats
  • pyre/bench/synth/getframe_while_inlined_callee_subwalk.dynasm.jitstats
  • pyre/bench/synth/getframe_while_inlined_callee_subwalk.wasm.jitstats
  • pyre/bench/synth/getframe_while_subwalk_decline_shapes.cranelift.jitstats
  • pyre/bench/synth/getframe_while_subwalk_decline_shapes.dynasm.jitstats
  • pyre/bench/synth/getframe_while_subwalk_decline_shapes.wasm.jitstats
  • pyre/bench/synth/global_cell_shortpreamble_hot.cranelift.jitstats
  • pyre/bench/synth/global_cell_shortpreamble_hot.dynasm.jitstats
  • pyre/bench/synth/global_cell_shortpreamble_hot.wasm.jitstats
  • pyre/bench/synth/global_quasiimmut_invalidation.cranelift.jitstats
  • pyre/bench/synth/global_quasiimmut_invalidation.dynasm.jitstats
  • pyre/bench/synth/global_quasiimmut_invalidation.wasm.jitstats
  • pyre/bench/synth/global_reassign.cranelift.jitstats
  • pyre/bench/synth/global_reassign.dynasm.jitstats
  • pyre/bench/synth/global_reassign.wasm.jitstats
  • pyre/bench/synth/global_reassign_invalidation.cranelift.jitstats
  • pyre/bench/synth/global_reassign_invalidation.dynasm.jitstats
  • pyre/bench/synth/global_reassign_invalidation.wasm.jitstats
  • pyre/bench/synth/goto_if_not_same_box.cranelift.jitstats
  • pyre/bench/synth/goto_if_not_same_box.dynasm.jitstats
  • pyre/bench/synth/goto_if_not_same_box.wasm.jitstats
  • pyre/bench/synth/handler_reraise_second_exc.cranelift.jitstats
  • pyre/bench/synth/handler_reraise_second_exc.dynasm.jitstats
  • pyre/bench/synth/handler_reraise_second_exc.wasm.jitstats
  • pyre/bench/synth/hash_subclass_disabled.cranelift.jitstats
  • pyre/bench/synth/hash_subclass_disabled.dynasm.jitstats
  • pyre/bench/synth/hash_subclass_disabled.wasm.jitstats
  • pyre/bench/synth/if_else_jump_forward.cranelift.jitstats
  • pyre/bench/synth/if_else_jump_forward.dynasm.jitstats
  • pyre/bench/synth/if_else_jump_forward.wasm.jitstats
  • pyre/bench/synth/imp_lock_rlock_semantics.cranelift.jitstats
  • pyre/bench/synth/imp_lock_rlock_semantics.dynasm.jitstats
  • pyre/bench/synth/imp_lock_rlock_semantics.wasm.jitstats
  • pyre/bench/synth/import_from_hot.cranelift.jitstats
  • pyre/bench/synth/import_from_hot.dynasm.jitstats
  • pyre/bench/synth/import_from_hot.wasm.jitstats
  • pyre/bench/synth/import_from_name_path.cranelift.jitstats
  • pyre/bench/synth/import_from_name_path.dynasm.jitstats
  • pyre/bench/synth/import_from_name_path.wasm.jitstats
  • pyre/bench/synth/import_math.cranelift.jitstats
  • pyre/bench/synth/import_math.dynasm.jitstats
  • pyre/bench/synth/import_math.wasm.jitstats
  • pyre/bench/synth/import_name.cranelift.jitstats
  • pyre/bench/synth/import_name.dynasm.jitstats
  • pyre/bench/synth/import_name.wasm.jitstats
  • pyre/bench/synth/import_none_sentinel.cranelift.jitstats
  • pyre/bench/synth/import_none_sentinel.dynasm.jitstats
  • pyre/bench/synth/import_none_sentinel.wasm.jitstats
  • pyre/bench/synth/inheritance_dispatch.cranelift.jitstats
  • pyre/bench/synth/inheritance_dispatch.dynasm.jitstats
  • pyre/bench/synth/inheritance_dispatch.wasm.jitstats
  • pyre/bench/synth/inline_bignum_bridge_twoclamp.cranelift.jitstats
  • pyre/bench/synth/inline_bignum_bridge_twoclamp.dynasm.jitstats
  • pyre/bench/synth/inline_bignum_bridge_twoclamp.wasm.jitstats
  • pyre/bench/synth/inline_callee_constructs_object.cranelift.jitstats
  • pyre/bench/synth/inline_callee_constructs_object.dynasm.jitstats
  • pyre/bench/synth/inline_callee_constructs_object.wasm.jitstats
  • pyre/bench/synth/inline_chain_depth_typeflip.cranelift.jitstats
  • pyre/bench/synth/inline_chain_depth_typeflip.dynasm.jitstats
  • pyre/bench/synth/inline_chain_depth_typeflip.wasm.jitstats
  • pyre/bench/synth/inline_gate_operand_provenance.cranelift.jitstats
  • pyre/bench/synth/inline_gate_operand_provenance.dynasm.jitstats
  • pyre/bench/synth/inline_gate_operand_provenance.wasm.jitstats
  • pyre/bench/synth/inline_multiframe_branchy_carrier.cranelift.jitstats
  • pyre/bench/synth/inline_multiframe_branchy_carrier.dynasm.jitstats
  • pyre/bench/synth/inline_multiframe_branchy_carrier.wasm.jitstats
  • pyre/bench/synth/inline_subwalk_mutating_residual.cranelift.jitstats
  • pyre/bench/synth/inline_subwalk_mutating_residual.dynasm.jitstats
  • pyre/bench/synth/inline_subwalk_mutating_residual.wasm.jitstats
  • pyre/bench/synth/inline_subwalk_property_mutates.cranelift.jitstats
  • pyre/bench/synth/inline_subwalk_property_mutates.dynasm.jitstats
  • pyre/bench/synth/inline_subwalk_property_mutates.wasm.jitstats
  • pyre/bench/synth/inline_subwalk_radd_consumed.cranelift.jitstats
  • pyre/bench/synth/inline_subwalk_radd_consumed.dynasm.jitstats
  • pyre/bench/synth/inline_subwalk_radd_consumed.wasm.jitstats
  • pyre/bench/synth/inline_subwalk_user_iterator.cranelift.jitstats
  • pyre/bench/synth/inline_subwalk_user_iterator.dynasm.jitstats
  • pyre/bench/synth/inline_subwalk_user_iterator.wasm.jitstats
  • pyre/bench/synth/inlined_callee_extended_arg_handler.cranelift.jitstats
  • pyre/bench/synth/inlined_callee_extended_arg_handler.dynasm.jitstats
  • pyre/bench/synth/inlined_callee_extended_arg_handler.wasm.jitstats
  • pyre/bench/synth/inlined_helper_arith_hot.cranelift.jitstats
  • pyre/bench/synth/inlined_helper_arith_hot.dynasm.jitstats
  • pyre/bench/synth/inlined_helper_arith_hot.wasm.jitstats
  • pyre/bench/synth/inlined_helper_mutation.cranelift.jitstats
  • pyre/bench/synth/inlined_helper_mutation.dynasm.jitstats
  • pyre/bench/synth/inlined_helper_mutation.wasm.jitstats
  • pyre/bench/synth/instance_dict_reassign.cranelift.jitstats
  • pyre/bench/synth/instance_dict_reassign.dynasm.jitstats
  • pyre/bench/synth/instance_dict_reassign.wasm.jitstats
  • pyre/bench/synth/instance_surrogate_attrs.cranelift.jitstats
  • pyre/bench/synth/instance_surrogate_attrs.dynasm.jitstats
  • pyre/bench/synth/instance_surrogate_attrs.wasm.jitstats
  • pyre/bench/synth/int_base0_error_literal.cranelift.jitstats
  • pyre/bench/synth/int_base0_error_literal.dynasm.jitstats
  • pyre/bench/synth/int_base0_error_literal.wasm.jitstats
  • pyre/bench/synth/int_from_bad_dunder.cranelift.jitstats
  • pyre/bench/synth/int_from_bad_dunder.dynasm.jitstats
  • pyre/bench/synth/int_from_bad_dunder.wasm.jitstats
  • pyre/bench/synth/int_lshift_memoryerror.cranelift.jitstats
  • pyre/bench/synth/int_lshift_memoryerror.dynasm.jitstats
  • pyre/bench/synth/int_lshift_memoryerror.wasm.jitstats
  • pyre/bench/synth/int_max_str_digits.cranelift.jitstats
  • pyre/bench/synth/int_max_str_digits.dynasm.jitstats
  • pyre/bench/synth/int_max_str_digits.wasm.jitstats
  • pyre/bench/synth/int_mul_ovf_bignum_promote.cranelift.jitstats
  • pyre/bench/synth/int_mul_ovf_bignum_promote.dynasm.jitstats
  • pyre/bench/synth/int_mul_ovf_bignum_promote.wasm.jitstats
  • pyre/bench/synth/iter_sentinel_stopiteration.cranelift.jitstats
  • pyre/bench/synth/iter_sentinel_stopiteration.dynasm.jitstats
  • pyre/bench/synth/iter_sentinel_stopiteration.wasm.jitstats
  • pyre/bench/synth/iteration_protocol.cranelift.jitstats
  • pyre/bench/synth/iteration_protocol.dynasm.jitstats
  • pyre/bench/synth/iteration_protocol.wasm.jitstats
  • pyre/bench/synth/itertools_cycle.cranelift.jitstats
  • pyre/bench/synth/itertools_cycle.dynasm.jitstats
  • pyre/bench/synth/itertools_cycle.wasm.jitstats
  • pyre/bench/synth/jit_callee_raised_exc_value.cranelift.jitstats
  • pyre/bench/synth/jit_callee_raised_exc_value.dynasm.jitstats
  • pyre/bench/synth/jit_callee_raised_exc_value.wasm.jitstats
  • pyre/bench/synth/jit_reg_const_pool_256_slot_decline.cranelift.jitstats
  • pyre/bench/synth/jit_reg_const_pool_256_slot_decline.dynasm.jitstats
  • pyre/bench/synth/jit_reg_const_pool_256_slot_decline.wasm.jitstats
  • pyre/bench/synth/kept_stack_aliased_swap_boxed.cranelift.jitstats
  • pyre/bench/synth/kept_stack_aliased_swap_boxed.dynasm.jitstats
  • pyre/bench/synth/kept_stack_aliased_swap_boxed.wasm.jitstats
  • pyre/bench/synth/kept_stack_boxed_in_handler.cranelift.jitstats
  • pyre/bench/synth/kept_stack_boxed_in_handler.dynasm.jitstats
  • pyre/bench/synth/kept_stack_boxed_in_handler.wasm.jitstats
  • pyre/bench/synth/kept_stack_branch_depths.cranelift.jitstats
  • pyre/bench/synth/kept_stack_branch_depths.dynasm.jitstats
  • pyre/bench/synth/kept_stack_branch_depths.wasm.jitstats
  • pyre/bench/synth/kept_stack_deep_var_condexpr.cranelift.jitstats
  • pyre/bench/synth/kept_stack_deep_var_condexpr.dynasm.jitstats
  • pyre/bench/synth/kept_stack_deep_var_condexpr.wasm.jitstats
  • pyre/bench/synth/kept_stack_deep_var_nested_call.cranelift.jitstats
  • pyre/bench/synth/kept_stack_deep_var_nested_call.dynasm.jitstats
  • pyre/bench/synth/kept_stack_deep_var_nested_call.wasm.jitstats
  • pyre/bench/synth/kept_stack_deep_var_shortcircuit.cranelift.jitstats
  • pyre/bench/synth/kept_stack_deep_var_shortcircuit.dynasm.jitstats
  • pyre/bench/synth/kept_stack_deep_var_shortcircuit.wasm.jitstats
  • pyre/bench/synth/kept_stack_depth_gt1.cranelift.jitstats
  • pyre/bench/synth/kept_stack_depth_gt1.dynasm.jitstats
  • pyre/bench/synth/kept_stack_depth_gt1.wasm.jitstats
  • pyre/bench/synth/kept_stack_depth_gt1_heap.cranelift.jitstats
  • pyre/bench/synth/kept_stack_depth_gt1_heap.dynasm.jitstats
  • pyre/bench/synth/kept_stack_depth_gt1_heap.wasm.jitstats
  • pyre/bench/synth/key_eq_resize_restart.cranelift.jitstats
  • pyre/bench/synth/key_eq_resize_restart.dynasm.jitstats
  • pyre/bench/synth/key_eq_resize_restart.wasm.jitstats
  • pyre/bench/synth/key_eq_restart_forgets.cranelift.jitstats
  • pyre/bench/synth/key_eq_restart_forgets.dynasm.jitstats
  • pyre/bench/synth/key_eq_restart_forgets.wasm.jitstats
  • pyre/bench/synth/kwargs_positional_only.cranelift.jitstats
  • pyre/bench/synth/kwargs_positional_only.dynasm.jitstats
  • pyre/bench/synth/kwargs_positional_only.wasm.jitstats
  • pyre/bench/synth/len_dunder_validation.cranelift.jitstats
  • pyre/bench/synth/len_dunder_validation.dynasm.jitstats
  • pyre/bench/synth/len_dunder_validation.wasm.jitstats
  • pyre/bench/synth/list_append_funcentry_helper.cranelift.jitstats
  • pyre/bench/synth/list_append_funcentry_helper.dynasm.jitstats
  • pyre/bench/synth/list_append_funcentry_helper.wasm.jitstats
  • pyre/bench/synth/list_append_virtual_payload.cranelift.jitstats
  • pyre/bench/synth/list_append_virtual_payload.dynasm.jitstats
  • pyre/bench/synth/list_append_virtual_payload.wasm.jitstats
  • pyre/bench/synth/list_append_write_barrier_gc.cranelift.jitstats
  • pyre/bench/synth/list_append_write_barrier_gc.dynasm.jitstats
  • pyre/bench/synth/list_append_write_barrier_gc.wasm.jitstats
  • pyre/bench/synth/list_bound_method_mutation.cranelift.jitstats
  • pyre/bench/synth/list_bound_method_mutation.dynasm.jitstats
  • pyre/bench/synth/list_bound_method_mutation.wasm.jitstats
  • pyre/bench/synth/list_error_parity.cranelift.jitstats
  • pyre/bench/synth/list_error_parity.dynasm.jitstats
  • pyre/bench/synth/list_error_parity.wasm.jitstats
  • pyre/bench/synth/list_inplace_mul_parity.cranelift.jitstats
  • pyre/bench/synth/list_inplace_mul_parity.dynasm.jitstats
  • pyre/bench/synth/list_inplace_mul_parity.wasm.jitstats
  • pyre/bench/synth/list_insert.cranelift.jitstats
  • pyre/bench/synth/list_insert.dynasm.jitstats
  • pyre/bench/synth/list_insert.wasm.jitstats
  • pyre/bench/synth/list_insert_pop_index.cranelift.jitstats
  • pyre/bench/synth/list_insert_pop_index.dynasm.jitstats
  • pyre/bench/synth/list_insert_pop_index.wasm.jitstats
  • pyre/bench/synth/list_length_hint_validate.cranelift.jitstats
  • pyre/bench/synth/list_length_hint_validate.dynasm.jitstats
  • pyre/bench/synth/list_length_hint_validate.wasm.jitstats
  • pyre/bench/synth/list_nan_identity.cranelift.jitstats
  • pyre/bench/synth/list_nan_identity.dynasm.jitstats
  • pyre/bench/synth/list_nan_identity.wasm.jitstats
  • pyre/bench/synth/list_ops.cranelift.jitstats
  • pyre/bench/synth/list_ops.dynasm.jitstats
  • pyre/bench/synth/list_ops.wasm.jitstats
  • pyre/bench/synth/list_pop_append.cranelift.jitstats
  • pyre/bench/synth/list_pop_append.dynasm.jitstats
  • pyre/bench/synth/list_pop_append.wasm.jitstats
  • pyre/bench/synth/list_reverse.cranelift.jitstats
  • pyre/bench/synth/list_reverse.dynasm.jitstats
  • pyre/bench/synth/list_reverse.wasm.jitstats
  • pyre/bench/synth/list_setslice.cranelift.jitstats
  • pyre/bench/synth/list_setslice.dynasm.jitstats
  • pyre/bench/synth/list_setslice.wasm.jitstats
  • pyre/bench/synth/list_subscript_index.cranelift.jitstats
  • pyre/bench/synth/list_subscript_index.dynasm.jitstats
  • pyre/bench/synth/list_subscript_index.wasm.jitstats
  • pyre/bench/synth/list_to_tuple_star.cranelift.jitstats
  • pyre/bench/synth/list_to_tuple_star.dynasm.jitstats
  • pyre/bench/synth/list_to_tuple_star.wasm.jitstats
  • pyre/bench/synth/listcomp_hot.cranelift.jitstats
  • pyre/bench/synth/listcomp_hot.dynasm.jitstats
  • pyre/bench/synth/listcomp_hot.wasm.jitstats
  • pyre/bench/synth/load_attr_blackhole_resume.cranelift.jitstats
  • pyre/bench/synth/load_attr_blackhole_resume.dynasm.jitstats
  • pyre/bench/synth/load_attr_blackhole_resume.wasm.jitstats
  • pyre/bench/synth/load_fast_check.cranelift.jitstats
  • pyre/bench/synth/load_fast_check.dynasm.jitstats
  • pyre/bench/synth/load_fast_check.wasm.jitstats
  • pyre/bench/synth/load_super_attr.cranelift.jitstats
  • pyre/bench/synth/load_super_attr.dynasm.jitstats
  • pyre/bench/synth/load_super_attr.wasm.jitstats
  • pyre/bench/synth/loop_callee_return.cranelift.jitstats
  • pyre/bench/synth/loop_callee_return.dynasm.jitstats
  • pyre/bench/synth/loop_callee_return.wasm.jitstats
  • pyre/bench/synth/loop_callee_shared_mutation.cranelift.jitstats
  • pyre/bench/synth/loop_callee_shared_mutation.dynasm.jitstats
  • pyre/bench/synth/loop_callee_shared_mutation.wasm.jitstats
  • pyre/bench/synth/loop_exit_empty_dict_local_clobber.cranelift.jitstats
  • pyre/bench/synth/loop_exit_empty_dict_local_clobber.dynasm.jitstats
  • pyre/bench/synth/loop_exit_empty_dict_local_clobber.wasm.jitstats
  • pyre/bench/synth/loops_comprehension.cranelift.jitstats
  • pyre/bench/synth/loops_comprehension.dynasm.jitstats
  • pyre/bench/synth/loops_comprehension.wasm.jitstats
  • pyre/bench/synth/mapdict_frozen_unboxing_fold.cranelift.jitstats
  • pyre/bench/synth/mapdict_frozen_unboxing_fold.dynasm.jitstats
  • pyre/bench/synth/mapdict_frozen_unboxing_fold.wasm.jitstats
  • pyre/bench/synth/mapdict_polymorphic_map_attr.cranelift.jitstats
  • pyre/bench/synth/mapdict_polymorphic_map_attr.dynasm.jitstats
  • pyre/bench/synth/mapdict_polymorphic_map_attr.wasm.jitstats
  • pyre/bench/synth/mapdict_unboxed_type_change_attr.cranelift.jitstats
  • pyre/bench/synth/mapdict_unboxed_type_change_attr.dynasm.jitstats
  • pyre/bench/synth/mapdict_unboxed_type_change_attr.wasm.jitstats
  • pyre/bench/synth/match_sequence_of_class_patterns.cranelift.jitstats
  • pyre/bench/synth/match_sequence_of_class_patterns.dynasm.jitstats
  • pyre/bench/synth/match_sequence_of_class_patterns.wasm.jitstats
  • pyre/bench/synth/math_isqrt_compare_bridge_resume.cranelift.jitstats
  • pyre/bench/synth/math_isqrt_compare_bridge_resume.dynasm.jitstats
  • pyre/bench/synth/math_isqrt_compare_bridge_resume.wasm.jitstats
  • pyre/bench/synth/math_sqrt_hot.cranelift.jitstats
  • pyre/bench/synth/math_sqrt_hot.dynasm.jitstats
  • pyre/bench/synth/math_sqrt_hot.wasm.jitstats
  • pyre/bench/synth/metaclass_conflict.cranelift.jitstats
  • pyre/bench/synth/metaclass_conflict.dynasm.jitstats
  • pyre/bench/synth/metaclass_conflict.wasm.jitstats
  • pyre/bench/synth/metaclass_getattr.cranelift.jitstats
  • pyre/bench/synth/metaclass_getattr.dynasm.jitstats
  • pyre/bench/synth/metaclass_getattr.wasm.jitstats
  • pyre/bench/synth/metaclass_getattribute_delattr.cranelift.jitstats
  • pyre/bench/synth/metaclass_getattribute_delattr.dynasm.jitstats
  • pyre/bench/synth/metaclass_getattribute_delattr.wasm.jitstats
  • pyre/bench/synth/metatype_property_dunder.cranelift.jitstats
  • pyre/bench/synth/metatype_property_dunder.dynasm.jitstats
  • pyre/bench/synth/metatype_property_dunder.wasm.jitstats
  • pyre/bench/synth/method_reassign_after_warmup.cranelift.jitstats
  • pyre/bench/synth/method_reassign_after_warmup.dynasm.jitstats
  • pyre/bench/synth/method_reassign_after_warmup.wasm.jitstats
  • pyre/bench/synth/minmax_key_rooting.cranelift.jitstats
  • pyre/bench/synth/minmax_key_rooting.dynasm.jitstats
  • pyre/bench/synth/minmax_key_rooting.wasm.jitstats
  • pyre/bench/synth/module_attr_message.cranelift.jitstats
  • pyre/bench/synth/module_attr_message.dynasm.jitstats
  • pyre/bench/synth/module_attr_message.wasm.jitstats
  • pyre/bench/synth/module_body_truncated_jitcode_replay.cranelift.jitstats
  • pyre/bench/synth/module_body_truncated_jitcode_replay.dynasm.jitstats
  • pyre/bench/synth/module_body_truncated_jitcode_replay.wasm.jitstats
  • pyre/bench/synth/module_dir_dunder.cranelift.jitstats
  • pyre/bench/synth/module_dir_dunder.dynasm.jitstats
  • pyre/bench/synth/module_dir_dunder.wasm.jitstats
  • pyre/bench/synth/module_function_not_descriptor.cranelift.jitstats
  • pyre/bench/synth/module_function_not_descriptor.dynasm.jitstats
  • pyre/bench/synth/module_function_not_descriptor.wasm.jitstats
  • pyre/bench/synth/module_getattr.cranelift.jitstats
  • pyre/bench/synth/module_getattr.dynasm.jitstats
  • pyre/bench/synth/module_getattr.wasm.jitstats
  • pyre/bench/synth/module_getattr_descr_error.cranelift.jitstats
  • pyre/bench/synth/module_getattr_descr_error.dynasm.jitstats
  • pyre/bench/synth/module_getattr_descr_error.wasm.jitstats
  • pyre/bench/synth/module_getattr_surrogate_cls.cranelift.jitstats
  • pyre/bench/synth/module_getattr_surrogate_cls.dynasm.jitstats
  • pyre/bench/synth/module_getattr_surrogate_cls.wasm.jitstats
  • pyre/bench/synth/mutate_then_raise_caught.cranelift.jitstats
  • pyre/bench/synth/mutate_then_raise_caught.dynasm.jitstats
  • pyre/bench/synth/mutate_then_raise_caught.wasm.jitstats
  • pyre/bench/synth/mutate_uncaught_raise_delivery.cranelift.jitstats
  • pyre/bench/synth/mutate_uncaught_raise_delivery.dynasm.jitstats
  • pyre/bench/synth/mutate_uncaught_raise_delivery.wasm.jitstats
  • pyre/bench/synth/named_reraise_sibling_hot.cranelift.jitstats
  • pyre/bench/synth/named_reraise_sibling_hot.dynasm.jitstats
  • pyre/bench/synth/named_reraise_sibling_hot.wasm.jitstats
  • pyre/bench/synth/nested_break_not_hot.cranelift.jitstats
  • pyre/bench/synth/nested_break_not_hot.dynasm.jitstats
  • pyre/bench/synth/nested_break_not_hot.wasm.jitstats
  • pyre/bench/synth/nested_callee_chain_mutation_abort.cranelift.jitstats
  • pyre/bench/synth/nested_callee_chain_mutation_abort.dynasm.jitstats
  • pyre/bench/synth/nested_callee_chain_mutation_abort.wasm.jitstats
  • pyre/bench/synth/nested_for_int_scratch_bridge.cranelift.jitstats
  • pyre/bench/synth/nested_for_int_scratch_bridge.dynasm.jitstats
  • pyre/bench/synth/nested_for_int_scratch_bridge.wasm.jitstats
  • pyre/bench/synth/nested_for_outer_local_postread.cranelift.jitstats
  • pyre/bench/synth/nested_for_outer_local_postread.dynasm.jitstats
  • pyre/bench/synth/nested_for_outer_local_postread.wasm.jitstats
  • pyre/bench/synth/nested_for_varying_trip.cranelift.jitstats
  • pyre/bench/synth/nested_for_varying_trip.dynasm.jitstats
  • pyre/bench/synth/nested_for_varying_trip.wasm.jitstats
  • pyre/bench/synth/nested_foriter_poly.cranelift.jitstats
  • pyre/bench/synth/nested_foriter_poly.dynasm.jitstats
  • pyre/bench/synth/nested_foriter_poly.wasm.jitstats
  • pyre/bench/synth/nested_loop_correctness.cranelift.jitstats
  • pyre/bench/synth/nested_loop_correctness.dynasm.jitstats
  • pyre/bench/synth/nested_loop_correctness.wasm.jitstats
  • pyre/bench/synth/nested_loop_gate_switch.cranelift.jitstats
  • pyre/bench/synth/nested_loop_gate_switch.dynasm.jitstats
  • pyre/bench/synth/nested_loop_gate_switch.wasm.jitstats
  • pyre/bench/synth/newslice_step_hot.cranelift.jitstats
  • pyre/bench/synth/newslice_step_hot.dynasm.jitstats
  • pyre/bench/synth/newslice_step_hot.wasm.jitstats
  • pyre/bench/synth/object_getattribute_no_hook.cranelift.jitstats
  • pyre/bench/synth/object_getattribute_no_hook.dynasm.jitstats
  • pyre/bench/synth/object_getattribute_no_hook.wasm.jitstats
  • pyre/bench/synth/operator_error_typename.cranelift.jitstats
  • pyre/bench/synth/operator_error_typename.dynasm.jitstats
  • pyre/bench/synth/operator_error_typename.wasm.jitstats
  • pyre/bench/synth/operator_set_inplace_ops.cranelift.jitstats
  • pyre/bench/synth/operator_set_inplace_ops.dynasm.jitstats
  • pyre/bench/synth/operator_set_inplace_ops.wasm.jitstats
  • pyre/bench/synth/or_chain_fresh_alloc_arg.cranelift.jitstats
  • pyre/bench/synth/or_chain_fresh_alloc_arg.dynasm.jitstats
  • pyre/bench/synth/or_chain_fresh_alloc_arg.wasm.jitstats
  • pyre/bench/synth/p2_local_result_bridge.cranelift.jitstats
  • pyre/bench/synth/p2_local_result_bridge.dynasm.jitstats
  • pyre/bench/synth/p2_local_result_bridge.wasm.jitstats
  • pyre/bench/synth/pickle_ctor_args.cranelift.jitstats
  • pyre/bench/synth/pickle_ctor_args.dynasm.jitstats
  • pyre/bench/synth/pickle_ctor_args.wasm.jitstats
  • pyre/bench/synth/polymorphic_binary_receiver.cranelift.jitstats
  • pyre/bench/synth/polymorphic_binary_receiver.dynasm.jitstats
  • pyre/bench/synth/polymorphic_binary_receiver.wasm.jitstats
  • pyre/bench/synth/polymorphic_slot_retype.cranelift.jitstats
  • pyre/bench/synth/polymorphic_slot_retype.dynasm.jitstats
  • pyre/bench/synth/polymorphic_slot_retype.wasm.jitstats
  • pyre/bench/synth/pow3_arg_types.cranelift.jitstats
  • pyre/bench/synth/pow3_arg_types.dynasm.jitstats
  • pyre/bench/synth/pow3_arg_types.wasm.jitstats
  • pyre/bench/synth/print_stdout_redirect.cranelift.jitstats
  • pyre/bench/synth/print_stdout_redirect.dynasm.jitstats
  • pyre/bench/synth/print_stdout_redirect.wasm.jitstats
  • pyre/bench/synth/property_custom_hook_decline.cranelift.jitstats
  • pyre/bench/synth/property_custom_hook_decline.dynasm.jitstats
  • pyre/bench/synth/property_custom_hook_decline.wasm.jitstats
  • pyre/bench/synth/property_getattr_exceptions.cranelift.jitstats
  • pyre/bench/synth/property_getattr_exceptions.dynasm.jitstats
  • pyre/bench/synth/property_getattr_exceptions.wasm.jitstats
  • pyre/bench/synth/property_protocol_hot.cranelift.jitstats
  • pyre/bench/synth/property_protocol_hot.dynasm.jitstats
  • pyre/bench/synth/property_protocol_hot.wasm.jitstats
  • pyre/bench/synth/pure_listload_raw.cranelift.jitstats
  • pyre/bench/synth/pure_listload_raw.dynasm.jitstats
  • pyre/bench/synth/pure_listload_raw.wasm.jitstats
  • pyre/bench/synth/pure_tupleload.cranelift.jitstats
  • pyre/bench/synth/pure_tupleload.dynasm.jitstats
  • pyre/bench/synth/pure_tupleload.wasm.jitstats
  • pyre/bench/synth/recursion_memo_branch.cranelift.jitstats
  • pyre/bench/synth/recursion_memo_branch.dynasm.jitstats
  • pyre/bench/synth/recursion_memo_branch.wasm.jitstats
  • pyre/bench/synth/recursive_call_frame_relocation.cranelift.jitstats
  • pyre/bench/synth/recursive_call_frame_relocation.dynasm.jitstats
  • pyre/bench/synth/recursive_call_frame_relocation.wasm.jitstats
  • pyre/bench/synth/reentrant_key_eq_mutation.cranelift.jitstats
  • pyre/bench/synth/reentrant_key_eq_mutation.dynasm.jitstats
  • pyre/bench/synth/reentrant_key_eq_mutation.wasm.jitstats
  • pyre/bench/synth/residual_raise_except_resume.cranelift.jitstats
  • pyre/bench/synth/residual_raise_except_resume.dynasm.jitstats
  • pyre/bench/synth/residual_raise_except_resume.wasm.jitstats
  • pyre/bench/synth/reversed_disabled.cranelift.jitstats
  • pyre/bench/synth/reversed_disabled.dynasm.jitstats
  • pyre/bench/synth/reversed_disabled.wasm.jitstats
  • pyre/bench/synth/selfrec_tail_exception_unwind.cranelift.jitstats
  • pyre/bench/synth/selfrec_tail_exception_unwind.dynasm.jitstats
  • pyre/bench/synth/selfrec_tail_exception_unwind.wasm.jitstats
  • pyre/bench/synth/seq_repeat_overflow.cranelift.jitstats
  • pyre/bench/synth/seq_repeat_overflow.dynasm.jitstats
  • pyre/bench/synth/seq_repeat_overflow.wasm.jitstats
  • pyre/bench/synth/seqiter_getitem_lazy.cranelift.jitstats
  • pyre/bench/synth/seqiter_getitem_lazy.dynasm.jitstats
  • pyre/bench/synth/seqiter_getitem_lazy.wasm.jitstats
  • pyre/bench/synth/seqiter_pickle_parity.cranelift.jitstats
  • pyre/bench/synth/seqiter_pickle_parity.dynasm.jitstats
  • pyre/bench/synth/seqiter_pickle_parity.wasm.jitstats
  • pyre/bench/synth/seqiter_tuple_error_parity.cranelift.jitstats
  • pyre/bench/synth/seqiter_tuple_error_parity.dynasm.jitstats
  • pyre/bench/synth/seqiter_tuple_error_parity.wasm.jitstats
  • pyre/bench/synth/sequence_repeat_index.cranelift.jitstats
  • pyre/bench/synth/sequence_repeat_index.dynasm.jitstats
  • pyre/bench/synth/sequence_repeat_index.wasm.jitstats
  • pyre/bench/synth/set_contains_frozenset.cranelift.jitstats
  • pyre/bench/synth/set_contains_frozenset.dynasm.jitstats
  • pyre/bench/synth/set_contains_frozenset.wasm.jitstats
  • pyre/bench/synth/set_hash_protocol.cranelift.jitstats
  • pyre/bench/synth/set_hash_protocol.dynasm.jitstats
  • pyre/bench/synth/set_hash_protocol.wasm.jitstats
  • pyre/bench/synth/set_intersection_operand.cranelift.jitstats
  • pyre/bench/synth/set_intersection_operand.dynasm.jitstats
  • pyre/bench/synth/set_intersection_operand.wasm.jitstats
  • pyre/bench/synth/set_key_protocol.cranelift.jitstats
  • pyre/bench/synth/set_key_protocol.dynasm.jitstats
  • pyre/bench/synth/set_key_protocol.wasm.jitstats
  • pyre/bench/synth/set_method_arity.cranelift.jitstats
  • pyre/bench/synth/set_method_arity.dynasm.jitstats
  • pyre/bench/synth/set_method_arity.wasm.jitstats
  • pyre/bench/synth/set_name_filtered_dict.cranelift.jitstats
  • pyre/bench/synth/set_name_filtered_dict.dynasm.jitstats
  • pyre/bench/synth/set_name_filtered_dict.wasm.jitstats
  • pyre/bench/synth/set_reentrant_eq_mutation.cranelift.jitstats
  • pyre/bench/synth/set_reentrant_eq_mutation.dynasm.jitstats
  • pyre/bench/synth/set_reentrant_eq_mutation.wasm.jitstats
  • pyre/bench/synth/set_remove_ord_errors.cranelift.jitstats
  • pyre/bench/synth/set_remove_ord_errors.dynasm.jitstats
  • pyre/bench/synth/set_remove_ord_errors.wasm.jitstats
  • pyre/bench/synth/set_update_hash_other.cranelift.jitstats
  • pyre/bench/synth/set_update_hash_other.dynasm.jitstats
  • pyre/bench/synth/set_update_hash_other.wasm.jitstats
  • pyre/bench/synth/set_update_hot.cranelift.jitstats
  • pyre/bench/synth/set_update_hot.dynasm.jitstats
  • pyre/bench/synth/set_update_hot.wasm.jitstats
  • pyre/bench/synth/set_update_materialize_rhs.cranelift.jitstats
  • pyre/bench/synth/set_update_materialize_rhs.dynasm.jitstats
  • pyre/bench/synth/set_update_materialize_rhs.wasm.jitstats
  • pyre/bench/synth/short_circuit_boxed_int_cross_fn.cranelift.jitstats
  • pyre/bench/synth/short_circuit_boxed_int_cross_fn.dynasm.jitstats
  • pyre/bench/synth/short_circuit_boxed_int_cross_fn.wasm.jitstats
  • pyre/bench/synth/short_circuit_falsy_func_entry_resume.cranelift.jitstats
  • pyre/bench/synth/short_circuit_falsy_func_entry_resume.dynasm.jitstats
  • pyre/bench/synth/short_circuit_falsy_func_entry_resume.wasm.jitstats
  • pyre/bench/synth/short_circuit_side_effects.cranelift.jitstats
  • pyre/bench/synth/short_circuit_side_effects.dynasm.jitstats
  • pyre/bench/synth/short_circuit_side_effects.wasm.jitstats
  • pyre/bench/synth/short_circuit_value_kept_stack.cranelift.jitstats
  • pyre/bench/synth/short_circuit_value_kept_stack.dynasm.jitstats
  • pyre/bench/synth/short_circuit_value_kept_stack.wasm.jitstats
  • pyre/bench/synth/short_circuit_value_local_kept.cranelift.jitstats
  • pyre/bench/synth/short_circuit_value_local_kept.dynasm.jitstats
  • pyre/bench/synth/short_circuit_value_local_kept.wasm.jitstats
  • pyre/bench/synth/simple_namespace_type.cranelift.jitstats
  • pyre/bench/synth/simple_namespace_type.dynasm.jitstats
  • pyre/bench/synth/simple_namespace_type.wasm.jitstats
  • pyre/bench/synth/slots_class_var_conflict.cranelift.jitstats
  • pyre/bench/synth/slots_class_var_conflict.dynasm.jitstats
  • pyre/bench/synth/slots_class_var_conflict.wasm.jitstats
  • pyre/bench/synth/sre_pattern_methods.cranelift.jitstats
  • pyre/bench/synth/sre_pattern_methods.dynasm.jitstats
  • pyre/bench/synth/sre_pattern_methods.wasm.jitstats
  • pyre/bench/synth/sre_wasm_min.cranelift.jitstats
  • pyre/bench/synth/sre_wasm_min.dynasm.jitstats
  • pyre/bench/synth/sre_wasm_min.wasm.jitstats
  • pyre/bench/synth/sre_wasm_min1.cranelift.jitstats
  • pyre/bench/synth/sre_wasm_min1.dynasm.jitstats
  • pyre/bench/synth/sre_wasm_min1.wasm.jitstats
  • pyre/bench/synth/store_global_hot.cranelift.jitstats
  • pyre/bench/synth/store_global_hot.dynasm.jitstats
  • pyre/bench/synth/store_global_hot.wasm.jitstats
  • pyre/bench/synth/store_slice_hot.cranelift.jitstats
  • pyre/bench/synth/store_slice_hot.dynasm.jitstats
  • pyre/bench/synth/store_slice_hot.wasm.jitstats
  • pyre/bench/synth/str_encode_text_codec.cranelift.jitstats
  • pyre/bench/synth/str_encode_text_codec.dynasm.jitstats
  • pyre/bench/synth/str_encode_text_codec.wasm.jitstats
  • pyre/bench/synth/str_fstring.cranelift.jitstats
  • pyre/bench/synth/str_fstring.dynasm.jitstats
  • pyre/bench/synth/str_fstring.wasm.jitstats
  • pyre/bench/synth/str_getitem_len_hot.cranelift.jitstats
  • pyre/bench/synth/str_getitem_len_hot.dynasm.jitstats
  • pyre/bench/synth/str_getitem_len_hot.wasm.jitstats
  • pyre/bench/synth/str_index_bytes_iter_surface.cranelift.jitstats
  • pyre/bench/synth/str_index_bytes_iter_surface.dynasm.jitstats
  • pyre/bench/synth/str_index_bytes_iter_surface.wasm.jitstats
  • pyre/bench/synth/str_search_index_bounds.cranelift.jitstats
  • pyre/bench/synth/str_search_index_bounds.dynasm.jitstats
  • pyre/bench/synth/str_search_index_bounds.wasm.jitstats
  • pyre/bench/synth/str_startswith_bounds.cranelift.jitstats
  • pyre/bench/synth/str_startswith_bounds.dynasm.jitstats
  • pyre/bench/synth/str_startswith_bounds.wasm.jitstats
  • pyre/bench/synth/struct_pack_unpack.cranelift.jitstats
  • pyre/bench/synth/struct_pack_unpack.dynasm.jitstats
  • pyre/bench/synth/struct_pack_unpack.wasm.jitstats
  • pyre/bench/synth/subscr_negative_index_deopt.cranelift.jitstats
  • pyre/bench/synth/subscr_negative_index_deopt.dynasm.jitstats
  • pyre/bench/synth/subscr_negative_index_deopt.wasm.jitstats
  • pyre/bench/synth/surrogate_class_kwargs.cranelift.jitstats
  • pyre/bench/synth/surrogate_class_kwargs.dynasm.jitstats
  • pyre/bench/synth/surrogate_class_kwargs.wasm.jitstats
  • pyre/bench/synth/surrogate_dir.cranelift.jitstats
  • pyre/bench/synth/surrogate_dir.dynasm.jitstats
  • pyre/bench/synth/surrogate_dir.wasm.jitstats
  • pyre/bench/synth/surrogate_kwargs.cranelift.jitstats
  • pyre/bench/synth/surrogate_kwargs.dynasm.jitstats
  • pyre/bench/synth/surrogate_kwargs.wasm.jitstats
  • pyre/bench/synth/surrogate_metaclass_kwargs.cranelift.jitstats
  • pyre/bench/synth/surrogate_metaclass_kwargs.dynasm.jitstats
  • pyre/bench/synth/surrogate_metaclass_kwargs.wasm.jitstats
  • pyre/bench/synth/swap_except_return_resume.cranelift.jitstats
  • pyre/bench/synth/swap_except_return_resume.dynasm.jitstats
  • pyre/bench/synth/swap_except_return_resume.wasm.jitstats
  • pyre/bench/synth/syntaxerror_location.cranelift.jitstats
  • pyre/bench/synth/syntaxerror_location.dynasm.jitstats
  • pyre/bench/synth/syntaxerror_location.wasm.jitstats
  • pyre/bench/synth/syntaxerror_str.cranelift.jitstats
  • pyre/bench/synth/syntaxerror_str.dynasm.jitstats
  • pyre/bench/synth/syntaxerror_str.wasm.jitstats
  • pyre/bench/synth/trace_too_long_effect_replay.cranelift.jitstats
  • pyre/bench/synth/trace_too_long_effect_replay.dynasm.jitstats
  • pyre/bench/synth/trace_too_long_effect_replay.wasm.jitstats
  • pyre/bench/synth/trace_too_long_inline_multiframe.cranelift.jitstats
  • pyre/bench/synth/trace_too_long_inline_multiframe.dynasm.jitstats
  • pyre/bench/synth/trace_too_long_inline_multiframe.wasm.jitstats
  • pyre/bench/synth/tuple_contains_eq_raises.cranelift.jitstats
  • pyre/bench/synth/tuple_contains_eq_raises.dynasm.jitstats
  • pyre/bench/synth/tuple_contains_eq_raises.wasm.jitstats
  • pyre/bench/synth/tuple_str_bytes_subscript_index.cranelift.jitstats
  • pyre/bench/synth/tuple_str_bytes_subscript_index.dynasm.jitstats
  • pyre/bench/synth/tuple_str_bytes_subscript_index.wasm.jitstats
  • pyre/bench/synth/type_descr_get_metaclass_getattr.cranelift.jitstats
  • pyre/bench/synth/type_descr_get_metaclass_getattr.dynasm.jitstats
  • pyre/bench/synth/type_descr_get_metaclass_getattr.wasm.jitstats
  • pyre/bench/synth/type_dict_surrogate.cranelift.jitstats
  • pyre/bench/synth/type_dict_surrogate.dynasm.jitstats
  • pyre/bench/synth/type_dict_surrogate.wasm.jitstats
  • pyre/bench/synth/type_dotted_name.cranelift.jitstats
  • pyre/bench/synth/type_dotted_name.dynasm.jitstats
  • pyre/bench/synth/type_dotted_name.wasm.jitstats
  • pyre/bench/synth/type_error_message_parity.cranelift.jitstats
  • pyre/bench/synth/type_error_message_parity.dynasm.jitstats
  • pyre/bench/synth/type_error_message_parity.wasm.jitstats
  • pyre/bench/synth/type_immutable_reject.cranelift.jitstats
  • pyre/bench/synth/type_immutable_reject.dynasm.jitstats
  • pyre/bench/synth/type_immutable_reject.wasm.jitstats
  • pyre/bench/synth/type_metatype_data_descr.cranelift.jitstats
  • pyre/bench/synth/type_metatype_data_descr.dynasm.jitstats
  • pyre/bench/synth/type_metatype_data_descr.wasm.jitstats
  • pyre/bench/synth/type_metatype_method_call.cranelift.jitstats
  • pyre/bench/synth/type_metatype_method_call.dynasm.jitstats
  • pyre/bench/synth/type_metatype_method_call.wasm.jitstats
  • pyre/bench/synth/type_name_setter.cranelift.jitstats
  • pyre/bench/synth/type_name_setter.dynasm.jitstats
  • pyre/bench/synth/type_name_setter.wasm.jitstats
  • pyre/bench/synth/type_name_surrogate_reject.cranelift.jitstats
  • pyre/bench/synth/type_name_surrogate_reject.dynasm.jitstats
  • pyre/bench/synth/type_name_surrogate_reject.wasm.jitstats
  • pyre/bench/synth/unary_int_loop_carried.cranelift.jitstats
  • pyre/bench/synth/unary_int_loop_carried.dynasm.jitstats
  • pyre/bench/synth/unary_int_loop_carried.wasm.jitstats
  • pyre/bench/synth/unary_negative.cranelift.jitstats
  • pyre/bench/synth/unary_negative.dynasm.jitstats
  • pyre/bench/synth/unary_negative.wasm.jitstats
  • pyre/bench/synth/unary_positive_resume.cranelift.jitstats
  • pyre/bench/synth/unary_positive_resume.dynasm.jitstats
  • pyre/bench/synth/unary_positive_resume.wasm.jitstats
  • pyre/bench/synth/unpack_drain_star_raise.cranelift.jitstats
  • pyre/bench/synth/unpack_drain_star_raise.dynasm.jitstats
  • pyre/bench/synth/unpack_drain_star_raise.wasm.jitstats
  • pyre/bench/synth/unpack_ex_hot.cranelift.jitstats
  • pyre/bench/synth/unpack_ex_hot.dynasm.jitstats
  • pyre/bench/synth/unpack_ex_hot.wasm.jitstats
  • pyre/bench/synth/unpack_wrong_arity_caught.cranelift.jitstats
  • pyre/bench/synth/unpack_wrong_arity_caught.dynasm.jitstats
  • pyre/bench/synth/unpack_wrong_arity_caught.wasm.jitstats
  • pyre/bench/synth/wasm_ca_trampoline_decline.cranelift.jitstats
  • pyre/bench/synth/wasm_ca_trampoline_decline.dynasm.jitstats
  • pyre/bench/synth/wasm_ca_trampoline_decline.wasm.jitstats
  • pyre/bench/synth/while_is_none.cranelift.jitstats
  • pyre/bench/synth/while_is_none.dynasm.jitstats
  • pyre/bench/synth/while_is_none.wasm.jitstats
  • pyre/check.py
  • pyre/pyre-jit-trace/src/assembler.rs
  • pyre/pyre-jit-trace/src/jitcode_dispatch/resume_snapshot.rs
  • pyre/pyre-jit-trace/src/state.rs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

🤖 Codex parity review

Static analysis of this diff vs the local RPython/PyPy sources (commit a115ce6).
Updated: 2026-08-01T13:00:26.885Z

Files in the reviewed diff
.github/codex-review-prompt.md
.github/workflows/codex-review-run.yml
majit/majit-gc/src/collector.rs
majit/majit-gc/src/lib.rs
majit/majit-metainterp/src/pyjitpl.rs
pyre/.gitignore
pyre/bench/synth/abstractmethods_metaclass_getattr.cranelift.jitstats
pyre/bench/synth/abstractmethods_metaclass_getattr.dynasm.jitstats
pyre/bench/synth/abstractmethods_metaclass_getattr.wasm.jitstats
pyre/bench/synth/abstractmethods_nonstring_name.cranelift.jitstats
pyre/bench/synth/abstractmethods_nonstring_name.dynasm.jitstats
pyre/bench/synth/abstractmethods_nonstring_name.wasm.jitstats
pyre/bench/synth/aiter_anext.cranelift.jitstats
pyre/bench/synth/aiter_anext.dynasm.jitstats
pyre/bench/synth/aiter_anext.wasm.jitstats
pyre/bench/synth/arith_int_bool.cranelift.jitstats
pyre/bench/synth/arith_int_bool.dynasm.jitstats
pyre/bench/synth/arith_int_bool.wasm.jitstats
pyre/bench/synth/array_deopt_resume.cranelift.jitstats
pyre/bench/synth/array_deopt_resume.dynasm.jitstats
pyre/bench/synth/array_deopt_resume.wasm.jitstats
pyre/bench/synth/assert_in_loop.cranelift.jitstats
pyre/bench/synth/assert_in_loop.dynasm.jitstats
pyre/bench/synth/assert_in_loop.wasm.jitstats
pyre/bench/synth/ast_compile_roundtrip.cranelift.jitstats
pyre/bench/synth/ast_compile_roundtrip.dynasm.jitstats
pyre/bench/synth/ast_compile_roundtrip.wasm.jitstats
pyre/bench/synth/attr_cache_invalidation.cranelift.jitstats
pyre/bench/synth/attr_cache_invalidation.dynasm.jitstats
pyre/bench/synth/attr_cache_invalidation.wasm.jitstats
pyre/bench/synth/attr_delete.cranelift.jitstats
pyre/bench/synth/attr_delete.dynasm.jitstats
pyre/bench/synth/attr_delete.wasm.jitstats
pyre/bench/synth/attr_instance_shadows_class.cranelift.jitstats
pyre/bench/synth/attr_instance_shadows_class.dynasm.jitstats
pyre/bench/synth/attr_instance_shadows_class.wasm.jitstats
pyre/bench/synth/attr_store_add_transition.cranelift.jitstats
pyre/bench/synth/attr_store_add_transition.dynasm.jitstats
pyre/bench/synth/attr_store_add_transition.wasm.jitstats
pyre/bench/synth/attr_store_cache.cranelift.jitstats
pyre/bench/synth/attr_store_cache.dynasm.jitstats
pyre/bench/synth/attr_store_cache.wasm.jitstats
pyre/bench/synth/bases_reassign_cache.cranelift.jitstats
pyre/bench/synth/bases_reassign_cache.dynasm.jitstats
pyre/bench/synth/bases_reassign_cache.wasm.jitstats
pyre/bench/synth/binary_int_overflow_local_resume.cranelift.jitstats
pyre/bench/synth/binary_int_overflow_local_resume.dynasm.jitstats
pyre/bench/synth/binary_int_overflow_local_resume.wasm.jitstats
pyre/bench/synth/binary_slice_index.cranelift.jitstats
pyre/bench/synth/binary_slice_index.dynasm.jitstats
pyre/bench/synth/binary_slice_index.wasm.jitstats
pyre/bench/synth/blackhole_inlined_callee_local_after_escape.cranelift.jitstats
pyre/bench/synth/blackhole_inlined_callee_local_after_escape.dynasm.jitstats
pyre/bench/synth/blackhole_inlined_callee_local_after_escape.wasm.jitstats
pyre/bench/synth/bool_dunder_error_no_leak.cranelift.jitstats
pyre/bench/synth/bool_dunder_error_no_leak.dynasm.jitstats
pyre/bench/synth/bool_dunder_error_no_leak.wasm.jitstats
pyre/bench/synth/bound_method_builtin_fold.cranelift.jitstats
pyre/bench/synth/bound_method_builtin_fold.dynasm.jitstats
pyre/bench/synth/bound_method_builtin_fold.wasm.jitstats
pyre/bench/synth/break_except_live_local.cranelift.jitstats
pyre/bench/synth/break_except_live_local.dynasm.jitstats
pyre/bench/synth/break_except_live_local.wasm.jitstats
pyre/bench/synth/bridge_branchy_callee.cranelift.jitstats
pyre/bench/synth/bridge_branchy_callee.dynasm.jitstats
pyre/bench/synth/bridge_branchy_callee.wasm.jitstats
pyre/bench/synth/bridge_global_fold_invalidate_hot.cranelift.jitstats
pyre/bench/synth/bridge_global_fold_invalidate_hot.dynasm.jitstats
pyre/bench/synth/bridge_global_fold_invalidate_hot.wasm.jitstats
pyre/bench/synth/bridge_recursion_overflow.cranelift.jitstats
pyre/bench/synth/bridge_recursion_overflow.dynasm.jitstats
pyre/bench/synth/bridge_recursion_overflow.wasm.jitstats
pyre/bench/synth/build_class_surrogate_namespace.cranelift.jitstats
pyre/bench/synth/build_class_surrogate_namespace.dynasm.jitstats
pyre/bench/synth/build_class_surrogate_namespace.wasm.jitstats
pyre/bench/synth/build_container_return_resume.cranelift.jitstats
pyre/bench/synth/build_container_return_resume.dynasm.jitstats
pyre/bench/synth/build_container_return_resume.wasm.jitstats
pyre/bench/synth/build_list_resume.cranelift.jitstats
pyre/bench/synth/build_list_resume.dynasm.jitstats
pyre/bench/synth/build_list_resume.wasm.jitstats
pyre/bench/synth/build_set_hashability.cranelift.jitstats
pyre/bench/synth/build_set_hashability.dynasm.jitstats
pyre/bench/synth/build_set_hashability.wasm.jitstats
pyre/bench/synth/builtin_type_surface.cranelift.jitstats
pyre/bench/synth/builtin_type_surface.dynasm.jitstats
pyre/bench/synth/builtin_type_surface.wasm.jitstats
pyre/bench/synth/bytes_split_whitespace_maxsplit.cranelift.jitstats
pyre/bench/synth/bytes_split_whitespace_maxsplit.dynasm.jitstats
pyre/bench/synth/bytes_split_whitespace_maxsplit.wasm.jitstats
pyre/bench/synth/ca_bridge_multiframe_resume_double_call.cranelift.jitstats
pyre/bench/synth/ca_bridge_multiframe_resume_double_call.dynasm.jitstats
pyre/bench/synth/ca_bridge_multiframe_resume_double_call.wasm.jitstats
pyre/bench/synth/call_ex_kwargs_mapping.cranelift.jitstats
pyre/bench/synth/call_ex_kwargs_mapping.dynasm.jitstats
pyre/bench/synth/call_ex_kwargs_mapping.wasm.jitstats
pyre/bench/synth/call_kw_hot_loop.cranelift.jitstats
pyre/bench/synth/call_kw_hot_loop.dynasm.jitstats
pyre/bench/synth/call_kw_hot_loop.wasm.jitstats
pyre/bench/synth/call_slot_descriptor_protocol.cranelift.jitstats
pyre/bench/synth/call_slot_descriptor_protocol.dynasm.jitstats
pyre/bench/synth/call_slot_descriptor_protocol.wasm.jitstats
pyre/bench/synth/call_star_forms_inlined_callee.cranelift.jitstats
pyre/bench/synth/call_star_forms_inlined_callee.dynasm.jitstats
pyre/bench/synth/call_star_forms_inlined_callee.wasm.jitstats
pyre/bench/synth/callable_iterator_type.cranelift.jitstats
pyre/bench/synth/callable_iterator_type.dynasm.jitstats
pyre/bench/synth/callable_iterator_type.wasm.jitstats
pyre/bench/synth/callee_return_side_effect.cranelift.jitstats
pyre/bench/synth/callee_return_side_effect.dynasm.jitstats
pyre/bench/synth/callee_return_side_effect.wasm.jitstats
pyre/bench/synth/callee_store_global_read_after_call.cranelift.jitstats
pyre/bench/synth/callee_store_global_read_after_call.dynasm.jitstats
pyre/bench/synth/callee_store_global_read_after_call.wasm.jitstats
pyre/bench/synth/calls_closures.cranelift.jitstats
pyre/bench/synth/calls_closures.dynasm.jitstats
pyre/bench/synth/calls_closures.wasm.jitstats
pyre/bench/synth/chained_comparison.cranelift.jitstats
pyre/bench/synth/chained_comparison.dynasm.jitstats
pyre/bench/synth/chained_comparison.wasm.jitstats
pyre/bench/synth/check_exc_match_invalid_class.cranelift.jitstats
pyre/bench/synth/check_exc_match_invalid_class.dynasm.jitstats
pyre/bench/synth/check_exc_match_invalid_class.wasm.jitstats
pyre/bench/synth/class_attrs_methods.cranelift.jitstats
pyre/bench/synth/class_attrs_methods.dynasm.jitstats
pyre/bench/synth/class_attrs_methods.wasm.jitstats
pyre/bench/synth/class_reassign_hot.cranelift.jitstats
pyre/bench/synth/class_reassign_hot.dynasm.jitstats
pyre/bench/synth/class_reassign_hot.wasm.jitstats
pyre/bench/synth/classmethod_protocol_hot.cranelift.jitstats
pyre/bench/synth/classmethod_protocol_hot.dynasm.jitstats
pyre/bench/synth/classmethod_protocol_hot.wasm.jitstats
pyre/bench/synth/classmethod_type_dispatch_hot.cranelift.jitstats
pyre/bench/synth/classmethod_type_dispatch_hot.dynasm.jitstats
pyre/bench/synth/classmethod_type_dispatch_hot.wasm.jitstats
pyre/bench/synth/closure_freevar_branch_resume.cranelift.jitstats
pyre/bench/synth/closure_freevar_branch_resume.dynasm.jitstats
pyre/bench/synth/closure_freevar_branch_resume.wasm.jitstats
pyre/bench/synth/closure_per_call.cranelift.jitstats
pyre/bench/synth/closure_per_call.dynasm.jitstats
pyre/bench/synth/closure_per_call.wasm.jitstats
pyre/bench/synth/complex_from_index.cranelift.jitstats
pyre/bench/synth/complex_from_index.dynasm.jitstats
pyre/bench/synth/complex_from_index.wasm.jitstats
pyre/bench/synth/complex_real_imag.cranelift.jitstats
pyre/bench/synth/complex_real_imag.dynasm.jitstats
pyre/bench/synth/complex_real_imag.wasm.jitstats
pyre/bench/synth/comprehension_accumulators.cranelift.jitstats
pyre/bench/synth/comprehension_accumulators.dynasm.jitstats
pyre/bench/synth/comprehension_accumulators.wasm.jitstats
pyre/bench/synth/comprehension_module_scope.cranelift.jitstats
pyre/bench/synth/comprehension_module_scope.dynasm.jitstats
pyre/bench/synth/comprehension_module_scope.wasm.jitstats
pyre/bench/synth/comprehension_object_append_hot.dynasm.jitstats
pyre/bench/synth/comprehension_param_range_call_flush.cranelift.jitstats
pyre/bench/synth/comprehension_param_range_call_flush.dynasm.jitstats
pyre/bench/synth/comprehension_param_range_call_flush.wasm.jitstats
pyre/bench/synth/condexpr_heap_const_merge.cranelift.jitstats
pyre/bench/synth/condexpr_heap_const_merge.dynasm.jitstats
pyre/bench/synth/condexpr_heap_const_merge.wasm.jitstats
pyre/bench/synth/context_manager.cranelift.jitstats
pyre/bench/synth/context_manager.dynasm.jitstats
pyre/bench/synth/context_manager.wasm.jitstats
pyre/bench/synth/defaults_reassigned_midloop.cranelift.jitstats
pyre/bench/synth/defaults_reassigned_midloop.dynasm.jitstats
pyre/bench/synth/defaults_reassigned_midloop.wasm.jitstats
pyre/bench/synth/del_cellvar_walk_commit.cranelift.jitstats
pyre/bench/synth/del_cellvar_walk_commit.dynasm.jitstats
pyre/bench/synth/del_cellvar_walk_commit.wasm.jitstats
pyre/bench/synth/delete_negative_open_slice_hot.cranelift.jitstats
pyre/bench/synth/delete_negative_open_slice_hot.dynasm.jitstats
pyre/bench/synth/delete_negative_open_slice_hot.wasm.jitstats
pyre/bench/synth/dict_ctor_consume.cranelift.jitstats
pyre/bench/synth/dict_ctor_consume.dynasm.jitstats
pyre/bench/synth/dict_ctor_consume.wasm.jitstats
pyre/bench/synth/dict_hash_protocol.cranelift.jitstats
pyre/bench/synth/dict_hash_protocol.dynasm.jitstats
pyre/bench/synth/dict_hash_protocol.wasm.jitstats
pyre/bench/synth/dict_set.cranelift.jitstats
pyre/bench/synth/dict_set.dynasm.jitstats
pyre/bench/synth/dict_set.wasm.jitstats
pyre/bench/synth/dict_set_key_eq_operand_order.cranelift.jitstats
pyre/bench/synth/dict_set_key_eq_operand_order.dynasm.jitstats
pyre/bench/synth/dict_set_key_eq_operand_order.wasm.jitstats
pyre/bench/synth/dict_update_hot.cranelift.jitstats
pyre/bench/synth/dict_update_hot.dynasm.jitstats
pyre/bench/synth/dict_update_hot.wasm.jitstats
pyre/bench/synth/dict_update_source_mutation.cranelift.jitstats
pyre/bench/synth/dict_update_source_mutation.dynasm.jitstats
pyre/bench/synth/dict_update_source_mutation.wasm.jitstats
pyre/bench/synth/dict_view_set_ops.cranelift.jitstats
pyre/bench/synth/dict_view_set_ops.dynasm.jitstats
pyre/bench/synth/dict_view_set_ops.wasm.jitstats
pyre/bench/synth/dir_custom.cranelift.jitstats
pyre/bench/synth/dir_custom.dynasm.jitstats
pyre/bench/synth/dir_custom.wasm.jitstats
pyre/bench/synth/dir_dict_class_attrs.cranelift.jitstats
pyre/bench/synth/dir_dict_class_attrs.dynasm.jitstats
pyre/bench/synth/dir_dict_class_attrs.wasm.jitstats
pyre/bench/synth/dir_full_mro.cranelift.jitstats
pyre/bench/synth/dir_full_mro.dynasm.jitstats
pyre/bench/synth/dir_full_mro.wasm.jitstats
pyre/bench/synth/dunder_repr_str_errors.cranelift.jitstats
pyre/bench/synth/dunder_repr_str_errors.dynasm.jitstats
pyre/bench/synth/dunder_repr_str_errors.wasm.jitstats
pyre/bench/synth/enumerate_bignum_start.cranelift.jitstats
pyre/bench/synth/enumerate_bignum_start.dynasm.jitstats
pyre/bench/synth/enumerate_bignum_start.wasm.jitstats
pyre/bench/synth/exc_bridge_entry_guard_not_removed.cranelift.jitstats
pyre/bench/synth/exc_bridge_entry_guard_not_removed.dynasm.jitstats
pyre/bench/synth/exc_bridge_entry_guard_not_removed.wasm.jitstats
pyre/bench/synth/exc_caught_in_callee_return_loop.cranelift.jitstats
pyre/bench/synth/exc_caught_in_callee_return_loop.dynasm.jitstats
pyre/bench/synth/exc_caught_in_callee_return_loop.wasm.jitstats
pyre/bench/synth/exc_in_loop_divzero_continue.cranelift.jitstats
pyre/bench/synth/exc_in_loop_divzero_continue.dynasm.jitstats
pyre/bench/synth/exc_in_loop_divzero_continue.wasm.jitstats
pyre/bench/synth/exc_info_module_loop_hot.cranelift.jitstats
pyre/bench/synth/exc_info_module_loop_hot.dynasm.jitstats
pyre/bench/synth/exc_info_module_loop_hot.wasm.jitstats
pyre/bench/synth/exc_mixed_classes_bridge_flavor.cranelift.jitstats
pyre/bench/synth/exc_mixed_classes_bridge_flavor.dynasm.jitstats
pyre/bench/synth/exc_mixed_classes_bridge_flavor.wasm.jitstats
pyre/bench/synth/except_star.cranelift.jitstats
pyre/bench/synth/except_star.dynasm.jitstats
pyre/bench/synth/except_star.wasm.jitstats
pyre/bench/synth/except_tuple_clause_hot.cranelift.jitstats
pyre/bench/synth/except_tuple_clause_hot.dynasm.jitstats
pyre/bench/synth/except_tuple_clause_hot.wasm.jitstats
pyre/bench/synth/exception_args_virtual.cranelift.jitstats
pyre/bench/synth/exception_args_virtual.dynasm.jitstats
pyre/bench/synth/exception_args_virtual.wasm.jitstats
pyre/bench/synth/exception_as_cell_cleanup.cranelift.jitstats
pyre/bench/synth/exception_as_cell_cleanup.dynasm.jitstats
pyre/bench/synth/exception_as_cell_cleanup.wasm.jitstats
pyre/bench/synth/exception_bare_reraise_nested_outer.cranelift.jitstats
pyre/bench/synth/exception_bare_reraise_nested_outer.dynasm.jitstats
pyre/bench/synth/exception_bare_reraise_nested_outer.wasm.jitstats
pyre/bench/synth/exception_bare_reraise_restore.cranelift.jitstats
pyre/bench/synth/exception_bare_reraise_restore.dynasm.jitstats
pyre/bench/synth/exception_bare_reraise_restore.wasm.jitstats
pyre/bench/synth/exception_bridge_traceback_head.cranelift.jitstats
pyre/bench/synth/exception_bridge_traceback_head.dynasm.jitstats
pyre/bench/synth/exception_bridge_traceback_head.wasm.jitstats
pyre/bench/synth/exception_catching_frame_tb_node.cranelift.jitstats
pyre/bench/synth/exception_catching_frame_tb_node.dynasm.jitstats
pyre/bench/synth/exception_catching_frame_tb_node.wasm.jitstats
pyre/bench/synth/exception_const_operand_resume.cranelift.jitstats
pyre/bench/synth/exception_const_operand_resume.dynasm.jitstats
pyre/bench/synth/exception_const_operand_resume.wasm.jitstats
pyre/bench/synth/exception_context_chain_inhandler.cranelift.jitstats
pyre/bench/synth/exception_context_chain_inhandler.dynasm.jitstats
pyre/bench/synth/exception_context_chain_inhandler.wasm.jitstats
pyre/bench/synth/exception_dict_slot_reject.cranelift.jitstats
pyre/bench/synth/exception_dict_slot_reject.dynasm.jitstats
pyre/bench/synth/exception_dict_slot_reject.wasm.jitstats
pyre/bench/synth/exception_escape_caller_frame_tb_node.cranelift.jitstats
pyre/bench/synth/exception_escape_caller_frame_tb_node.dynasm.jitstats
pyre/bench/synth/exception_escape_caller_frame_tb_node.wasm.jitstats
pyre/bench/synth/exception_escape_inlined_midframe_tb_node.cranelift.jitstats
pyre/bench/synth/exception_escape_inlined_midframe_tb_node.dynasm.jitstats
pyre/bench/synth/exception_escape_inlined_midframe_tb_node.wasm.jitstats
pyre/bench/synth/exception_group_type.cranelift.jitstats
pyre/bench/synth/exception_group_type.dynasm.jitstats
pyre/bench/synth/exception_group_type.wasm.jitstats
pyre/bench/synth/exception_inline_callee_tb_frames.cranelift.jitstats
pyre/bench/synth/exception_inline_callee_tb_frames.dynasm.jitstats
pyre/bench/synth/exception_inline_callee_tb_frames.wasm.jitstats
pyre/bench/synth/exception_inlined_callee_caught.cranelift.jitstats
pyre/bench/synth/exception_inlined_callee_caught.dynasm.jitstats
pyre/bench/synth/exception_inlined_callee_caught.wasm.jitstats
pyre/bench/synth/exception_loop_warmup.cranelift.jitstats
pyre/bench/synth/exception_loop_warmup.dynasm.jitstats
pyre/bench/synth/exception_loop_warmup.wasm.jitstats
pyre/bench/synth/exception_metadata_hot.cranelift.jitstats
pyre/bench/synth/exception_metadata_hot.dynasm.jitstats
pyre/bench/synth/exception_metadata_hot.wasm.jitstats
pyre/bench/synth/exception_metadata_jitstress.cranelift.jitstats
pyre/bench/synth/exception_metadata_jitstress.dynasm.jitstats
pyre/bench/synth/exception_metadata_jitstress.wasm.jitstats
pyre/bench/synth/exception_multi_handler_warmup.cranelift.jitstats
pyre/bench/synth/exception_multi_handler_warmup.dynasm.jitstats
pyre/bench/synth/exception_multi_handler_warmup.wasm.jitstats
pyre/bench/synth/exception_nested_exc_info_restore.cranelift.jitstats
pyre/bench/synth/exception_nested_exc_info_restore.dynasm.jitstats
pyre/bench/synth/exception_nested_exc_info_restore.wasm.jitstats
pyre/bench/synth/exception_oserror_fields.cranelift.jitstats
pyre/bench/synth/exception_oserror_fields.dynasm.jitstats
pyre/bench/synth/exception_oserror_fields.wasm.jitstats
pyre/bench/synth/exception_raise_caught_same_frame_tb.cranelift.jitstats
pyre/bench/synth/exception_raise_caught_same_frame_tb.dynasm.jitstats
pyre/bench/synth/exception_raise_caught_same_frame_tb.wasm.jitstats
pyre/bench/synth/exception_reduce.cranelift.jitstats
pyre/bench/synth/exception_reduce.dynasm.jitstats
pyre/bench/synth/exception_reduce.wasm.jitstats
pyre/bench/synth/exception_reentry_guard_finally_residual.cranelift.jitstats
pyre/bench/synth/exception_reentry_guard_finally_residual.dynasm.jitstats
pyre/bench/synth/exception_reentry_guard_finally_residual.wasm.jitstats
pyre/bench/synth/exception_reraise_tb_depth_hot.cranelift.jitstats
pyre/bench/synth/exception_reraise_tb_depth_hot.dynasm.jitstats
pyre/bench/synth/exception_reraise_tb_depth_hot.wasm.jitstats
pyre/bench/synth/exception_reraise_tb_depth_jitstress.cranelift.jitstats
pyre/bench/synth/exception_reraise_tb_depth_jitstress.dynasm.jitstats
pyre/bench/synth/exception_reraise_tb_depth_jitstress.wasm.jitstats
pyre/bench/synth/exception_residual_raise_caught_in_frame.cranelift.jitstats
pyre/bench/synth/exception_residual_raise_caught_in_frame.dynasm.jitstats
pyre/bench/synth/exception_residual_raise_caught_in_frame.wasm.jitstats
pyre/bench/synth/exception_subclass_attrs.cranelift.jitstats
pyre/bench/synth/exception_subclass_attrs.dynasm.jitstats
pyre/bench/synth/exception_subclass_attrs.wasm.jitstats
pyre/bench/synth/exception_traceback_frame_lineno.cranelift.jitstats
pyre/bench/synth/exception_traceback_frame_lineno.dynasm.jitstats
pyre/bench/synth/exception_traceback_frame_lineno.wasm.jitstats
pyre/bench/synth/exception_traceback_lineno_chain.cranelift.jitstats
pyre/bench/synth/exception_traceback_lineno_chain.dynasm.jitstats
pyre/bench/synth/exception_traceback_lineno_chain.wasm.jitstats
pyre/bench/synth/exception_traceback_loop_forms.cranelift.jitstats
pyre/bench/synth/exception_traceback_loop_forms.dynasm.jitstats
pyre/bench/synth/exception_traceback_loop_forms.wasm.jitstats
pyre/bench/synth/exception_try_call_inlined_callee_raise.cranelift.jitstats
pyre/bench/synth/exception_try_call_inlined_callee_raise.dynasm.jitstats
pyre/bench/synth/exception_try_call_inlined_callee_raise.wasm.jitstats
pyre/bench/synth/exception_value_op_caught.cranelift.jitstats
pyre/bench/synth/exception_value_op_caught.dynasm.jitstats
pyre/bench/synth/exception_value_op_caught.wasm.jitstats
pyre/bench/synth/exceptions.cranelift.jitstats
pyre/bench/synth/exceptions.dynasm.jitstats
pyre/bench/synth/exceptions.wasm.jitstats
pyre/bench/synth/exec_defined_global_read.cranelift.jitstats
pyre/bench/synth/exec_defined_global_read.dynasm.jitstats
pyre/bench/synth/exec_defined_global_read.wasm.jitstats
pyre/bench/synth/fast_local_swap.cranelift.jitstats
pyre/bench/synth/fast_local_swap.dynasm.jitstats
pyre/bench/synth/fast_local_swap.wasm.jitstats
pyre/bench/synth/finally_bare_raise.cranelift.jitstats
pyre/bench/synth/finally_bare_raise.dynasm.jitstats
pyre/bench/synth/finally_bare_raise.wasm.jitstats
pyre/bench/synth/float_builtin_hot.cranelift.jitstats
pyre/bench/synth/float_builtin_hot.dynasm.jitstats
pyre/bench/synth/float_builtin_hot.wasm.jitstats
pyre/bench/synth/float_div_zero_caught_loop.cranelift.jitstats
pyre/bench/synth/float_div_zero_caught_loop.dynasm.jitstats
pyre/bench/synth/float_div_zero_caught_loop.wasm.jitstats
pyre/bench/synth/float_pow_overflow_exp.cranelift.jitstats
pyre/bench/synth/float_pow_overflow_exp.dynasm.jitstats
pyre/bench/synth/float_pow_overflow_exp.wasm.jitstats
pyre/bench/synth/float_subclass_binop_dispatch.cranelift.jitstats
pyre/bench/synth/float_subclass_binop_dispatch.dynasm.jitstats
pyre/bench/synth/float_subclass_binop_dispatch.wasm.jitstats
pyre/bench/synth/for_iter_conditional_store_bridge.cranelift.jitstats
pyre/bench/synth/for_iter_conditional_store_bridge.dynasm.jitstats
pyre/bench/synth/for_iter_conditional_store_bridge.wasm.jitstats
pyre/bench/synth/for_iter_select_receiver_swap.cranelift.jitstats
pyre/bench/synth/for_iter_select_receiver_swap.dynasm.jitstats
pyre/bench/synth/for_iter_select_receiver_swap.wasm.jitstats
pyre/bench/synth/foriter_call_body.cranelift.jitstats
pyre/bench/synth/foriter_call_body.dynasm.jitstats
pyre/bench/synth/foriter_call_body.wasm.jitstats
pyre/bench/synth/foriter_call_resume_drops_iteration.cranelift.jitstats
pyre/bench/synth/foriter_call_resume_drops_iteration.dynasm.jitstats
pyre/bench/synth/foriter_call_resume_drops_iteration.py
pyre/bench/synth/foriter_call_resume_drops_iteration.wasm.jitstats
pyre/bench/synth/foriter_exempt_nested_foriter.cranelift.jitstats
pyre/bench/synth/foriter_exempt_nested_foriter.dynasm.jitstats
pyre/bench/synth/foriter_exempt_nested_foriter.wasm.jitstats
pyre/bench/synth/foriter_exempt_shared_generator.cranelift.jitstats
pyre/bench/synth/foriter_exempt_shared_generator.dynasm.jitstats
pyre/bench/synth/foriter_exempt_shared_generator.wasm.jitstats
pyre/bench/synth/foriter_in_while.cranelift.jitstats
pyre/bench/synth/foriter_in_while.dynasm.jitstats
pyre/bench/synth/foriter_in_while.wasm.jitstats
pyre/bench/synth/foriter_inplace_immutable.cranelift.jitstats
pyre/bench/synth/foriter_inplace_immutable.dynasm.jitstats
pyre/bench/synth/foriter_inplace_immutable.wasm.jitstats
pyre/bench/synth/foriter_loadglobal_body.cranelift.jitstats
pyre/bench/synth/foriter_loadglobal_body.dynasm.jitstats
pyre/bench/synth/foriter_loadglobal_body.wasm.jitstats
pyre/bench/synth/foriter_user_iter_kept_stack.cranelift.jitstats
pyre/bench/synth/foriter_user_iter_kept_stack.dynasm.jitstats
pyre/bench/synth/foriter_user_iter_kept_stack.wasm.jitstats
pyre/bench/synth/format_z_negative_zero.cranelift.jitstats
pyre/bench/synth/format_z_negative_zero.dynasm.jitstats
pyre/bench/synth/format_z_negative_zero.wasm.jitstats
pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.cranelift.jitstats
pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.dynasm.jitstats
pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.wasm.jitstats
pyre/bench/synth/gc_deque_backing_list.cranelift.jitstats
pyre/bench/synth/gc_deque_backing_list.dynasm.jitstats
pyre/bench/synth/gc_deque_backing_list.wasm.jitstats
pyre/bench/synth/gc_iterator_source_drop.cranelift.jitstats
pyre/bench/synth/gc_iterator_source_drop.dynasm.jitstats
pyre/bench/synth/gc_iterator_source_drop.wasm.jitstats
pyre/bench/synth/generator_pep479.cranelift.jitstats
pyre/bench/synth/generator_pep479.dynasm.jitstats
pyre/bench/synth/generator_pep479.wasm.jitstats
pyre/bench/synth/generator_tree_recursion.cranelift.jitstats
pyre/bench/synth/generator_tree_recursion.dynasm.jitstats
pyre/bench/synth/generator_tree_recursion.wasm.jitstats
pyre/bench/synth/getattr_attribute_fallbacks.cranelift.jitstats
pyre/bench/synth/getattr_attribute_fallbacks.dynasm.jitstats
pyre/bench/synth/getattr_attribute_fallbacks.wasm.jitstats
pyre/bench/synth/getattr_hook_binding.cranelift.jitstats
pyre/bench/synth/getattr_hook_binding.dynasm.jitstats
pyre/bench/synth/getattr_hook_binding.wasm.jitstats
pyre/bench/synth/getattr_surrogate_hook.cranelift.jitstats
pyre/bench/synth/getattr_surrogate_hook.dynasm.jitstats
pyre/bench/synth/getattr_surrogate_hook.wasm.jitstats
pyre/bench/synth/getattribute_intercepts_dunder.cranelift.jitstats
pyre/bench/synth/getattribute_intercepts_dunder.dynasm.jitstats
pyre/bench/synth/getattribute_intercepts_dunder.wasm.jitstats
pyre/bench/synth/getattribute_override_no_bind.cranelift.jitstats
pyre/bench/synth/getattribute_override_no_bind.dynasm.jitstats
pyre/bench/synth/getattribute_override_no_bind.wasm.jitstats
pyre/bench/synth/getframe_caller_locals_nested_compiled_callee.cranelift.jitstats
pyre/bench/synth/getframe_caller_locals_nested_compiled_callee.dynasm.jitstats
pyre/bench/synth/getframe_force_cancel_journal.cranelift.jitstats
pyre/bench/synth/getframe_force_cancel_journal.dynasm.jitstats
pyre/bench/synth/getframe_force_cancel_journal.wasm.jitstats
pyre/bench/synth/getframe_inline_subwalk_multiframe.cranelift.jitstats
pyre/bench/synth/getframe_inline_subwalk_multiframe.dynasm.jitstats
pyre/bench/synth/getframe_inline_subwalk_multiframe.wasm.jitstats
pyre/bench/synth/getframe_inlined_callee_own_frame.cranelift.jitstats
pyre/bench/synth/getframe_inlined_callee_own_frame.dynasm.jitstats
pyre/bench/synth/getframe_inlined_callee_own_frame.wasm.jitstats
pyre/bench/synth/getframe_residual_callee_own_frame.cranelift.jitstats
pyre/bench/synth/getframe_residual_callee_own_frame.dynasm.jitstats
pyre/bench/synth/getframe_residual_callee_own_frame.wasm.jitstats
pyre/bench/synth/getframe_root_loop_force_blackhole_crn.cranelift.jitstats
pyre/bench/synth/getframe_root_loop_force_blackhole_crn.dynasm.jitstats
pyre/bench/synth/getframe_root_loop_force_blackhole_crn.wasm.jitstats
pyre/bench/synth/getframe_root_loop_force_blackhole_crn_nonidempotent.cranelift.jitstats
pyre/bench/synth/getframe_root_loop_force_blackhole_crn_nonidempotent.dynasm.jitstats
pyre/bench/synth/getframe_root_loop_force_blackhole_crn_nonidempotent.wasm.jitstats
pyre/bench/synth/getframe_root_loop_force_while_merge.cranelift.jitstats
pyre/bench/synth/getframe_root_loop_force_while_merge.dynasm.jitstats
pyre/bench/synth/getframe_root_loop_force_while_merge.wasm.jitstats
pyre/bench/synth/getframe_stored_fback_walk.cranelift.jitstats
pyre/bench/synth/getframe_stored_fback_walk.dynasm.jitstats
pyre/bench/synth/getframe_stored_fback_walk.wasm.jitstats
pyre/bench/synth/getframe_while_caller_locals_across_subwalk.cranelift.jitstats
pyre/bench/synth/getframe_while_caller_locals_across_subwalk.dynasm.jitstats
pyre/bench/synth/getframe_while_caller_locals_across_subwalk.wasm.jitstats
pyre/bench/synth/getframe_while_captured_frame_outlives_call.cranelift.jitstats
pyre/bench/synth/getframe_while_captured_frame_outlives_call.dynasm.jitstats
pyre/bench/synth/getframe_while_captured_frame_outlives_call.wasm.jitstats
pyre/bench/synth/getframe_while_escaping_read_frame_identity.cranelift.jitstats
pyre/bench/synth/getframe_while_escaping_read_frame_identity.dynasm.jitstats
pyre/bench/synth/getframe_while_escaping_read_frame_identity.wasm.jitstats
pyre/bench/synth/getframe_while_inlined_callee_subwalk.cranelift.jitstats
pyre/bench/synth/getframe_while_inlined_callee_subwalk.dynasm.jitstats
pyre/bench/synth/getframe_while_inlined_callee_subwalk.wasm.jitstats
pyre/bench/synth/getframe_while_subwalk_decline_shapes.cranelift.jitstats
pyre/bench/synth/getframe_while_subwalk_decline_shapes.dynasm.jitstats
pyre/bench/synth/getframe_while_subwalk_decline_shapes.wasm.jitstats
pyre/bench/synth/global_cell_shortpreamble_hot.cranelift.jitstats
pyre/bench/synth/global_cell_shortpreamble_hot.dynasm.jitstats
pyre/bench/synth/global_cell_shortpreamble_hot.wasm.jitstats
pyre/bench/synth/global_quasiimmut_invalidation.cranelift.jitstats
pyre/bench/synth/global_quasiimmut_invalidation.dynasm.jitstats
pyre/bench/synth/global_quasiimmut_invalidation.wasm.jitstats
pyre/bench/synth/global_reassign.cranelift.jitstats
pyre/bench/synth/global_reassign.dynasm.jitstats
pyre/bench/synth/global_reassign.wasm.jitstats
pyre/bench/synth/global_reassign_invalidation.cranelift.jitstats
pyre/bench/synth/global_reassign_invalidation.dynasm.jitstats
pyre/bench/synth/global_reassign_invalidation.wasm.jitstats
pyre/bench/synth/goto_if_not_same_box.cranelift.jitstats
pyre/bench/synth/goto_if_not_same_box.dynasm.jitstats
pyre/bench/synth/goto_if_not_same_box.wasm.jitstats
pyre/bench/synth/handler_reraise_second_exc.cranelift.jitstats
pyre/bench/synth/handler_reraise_second_exc.dynasm.jitstats
pyre/bench/synth/handler_reraise_second_exc.wasm.jitstats
pyre/bench/synth/hash_subclass_disabled.cranelift.jitstats
pyre/bench/synth/hash_subclass_disabled.dynasm.jitstats
pyre/bench/synth/hash_subclass_disabled.wasm.jitstats
pyre/bench/synth/if_else_jump_forward.cranelift.jitstats
pyre/bench/synth/if_else_jump_forward.dynasm.jitstats
pyre/bench/synth/if_else_jump_forward.wasm.jitstats
pyre/bench/synth/imp_lock_rlock_semantics.cranelift.jitstats
pyre/bench/synth/imp_lock_rlock_semantics.dynasm.jitstats
pyre/bench/synth/imp_lock_rlock_semantics.wasm.jitstats
pyre/bench/synth/import_from_hot.cranelift.jitstats
pyre/bench/synth/import_from_hot.dynasm.jitstats
pyre/bench/synth/import_from_hot.wasm.jitstats
pyre/bench/synth/import_from_name_path.cranelift.jitstats
pyre/bench/synth/import_from_name_path.dynasm.jitstats
pyre/bench/synth/import_from_name_path.wasm.jitstats
pyre/bench/synth/import_math.cranelift.jitstats
pyre/bench/synth/import_math.dynasm.jitstats
pyre/bench/synth/import_math.wasm.jitstats
pyre/bench/synth/import_name.cranelift.jitstats
pyre/bench/synth/import_name.dynasm.jitstats
pyre/bench/synth/import_name.wasm.jitstats
pyre/bench/synth/import_none_sentinel.cranelift.jitstats
pyre/bench/synth/import_none_sentinel.dynasm.jitstats
pyre/bench/synth/import_none_sentinel.wasm.jitstats
pyre/bench/synth/inheritance_dispatch.cranelift.jitstats
pyre/bench/synth/inheritance_dispatch.dynasm.jitstats
pyre/bench/synth/inheritance_dispatch.wasm.jitstats
pyre/bench/synth/inline_bignum_bridge_twoclamp.cranelift.jitstats
pyre/bench/synth/inline_bignum_bridge_twoclamp.dynasm.jitstats
pyre/bench/synth/inline_bignum_bridge_twoclamp.wasm.jitstats
pyre/bench/synth/inline_callee_constructs_object.cranelift.jitstats
pyre/bench/synth/inline_callee_constructs_object.dynasm.jitstats
pyre/bench/synth/inline_callee_constructs_object.wasm.jitstats
pyre/bench/synth/inline_chain_depth_typeflip.cranelift.jitstats
pyre/bench/synth/inline_chain_depth_typeflip.dynasm.jitstats
pyre/bench/synth/inline_chain_depth_typeflip.wasm.jitstats
pyre/bench/synth/inline_gate_operand_provenance.cranelift.jitstats
pyre/bench/synth/inline_gate_operand_provenance.dynasm.jitstats
pyre/bench/synth/inline_gate_operand_provenance.wasm.jitstats
pyre/bench/synth/inline_multiframe_branchy_carrier.cranelift.jitstats
pyre/bench/synth/inline_multiframe_branchy_carrier.dynasm.jitstats
pyre/bench/synth/inline_multiframe_branchy_carrier.wasm.jitstats
pyre/bench/synth/inline_subwalk_mutating_residual.cranelift.jitstats
pyre/bench/synth/inline_subwalk_mutating_residual.dynasm.jitstats
pyre/bench/synth/inline_subwalk_mutating_residual.wasm.jitstats
pyre/bench/synth/inline_subwalk_property_mutates.cranelift.jitstats
pyre/bench/synth/inline_subwalk_property_mutates.dynasm.jitstats
pyre/bench/synth/inline_subwalk_property_mutates.wasm.jitstats
pyre/bench/synth/inline_subwalk_radd_consumed.cranelift.jitstats
pyre/bench/synth/inline_subwalk_radd_consumed.dynasm.jitstats
pyre/bench/synth/inline_subwalk_radd_consumed.wasm.jitstats
pyre/bench/synth/inline_subwalk_user_iterator.cranelift.jitstats
pyre/bench/synth/inline_subwalk_user_iterator.dynasm.jitstats
pyre/bench/synth/inline_subwalk_user_iterator.wasm.jitstats
pyre/bench/synth/inlined_callee_extended_arg_handler.cranelift.jitstats
pyre/bench/synth/inlined_callee_extended_arg_handler.dynasm.jitstats
pyre/bench/synth/inlined_callee_extended_arg_handler.wasm.jitstats
pyre/bench/synth/inlined_helper_arith_hot.cranelift.jitstats
pyre/bench/synth/inlined_helper_arith_hot.dynasm.jitstats
pyre/bench/synth/inlined_helper_arith_hot.wasm.jitstats
pyre/bench/synth/inlined_helper_mutation.cranelift.jitstats
pyre/bench/synth/inlined_helper_mutation.dynasm.jitstats
pyre/bench/synth/inlined_helper_mutation.wasm.jitstats
pyre/bench/synth/instance_dict_reassign.cranelift.jitstats
pyre/bench/synth/instance_dict_reassign.dynasm.jitstats
pyre/bench/synth/instance_dict_reassign.wasm.jitstats
pyre/bench/synth/instance_surrogate_attrs.cranelift.jitstats
pyre/bench/synth/instance_surrogate_attrs.dynasm.jitstats
pyre/bench/synth/instance_surrogate_attrs.wasm.jitstats
pyre/bench/synth/int_base0_error_literal.cranelift.jitstats
pyre/bench/synth/int_base0_error_literal.dynasm.jitstats
pyre/bench/synth/int_base0_error_literal.wasm.jitstats
pyre/bench/synth/int_from_bad_dunder.cranelift.jitstats
pyre/bench/synth/int_from_bad_dunder.dynasm.jitstats
pyre/bench/synth/int_from_bad_dunder.wasm.jitstats
pyre/bench/synth/int_lshift_memoryerror.cranelift.jitstats
pyre/bench/synth/int_lshift_memoryerror.dynasm.jitstats
pyre/bench/synth/int_lshift_memoryerror.wasm.jitstats
pyre/bench/synth/int_max_str_digits.cranelift.jitstats
pyre/bench/synth/int_max_str_digits.dynasm.jitstats
pyre/bench/synth/int_max_str_digits.wasm.jitstats
pyre/bench/synth/int_mul_ovf_bignum_promote.cranelift.jitstats
pyre/bench/synth/int_mul_ovf_bignum_promote.dynasm.jitstats
pyre/bench/synth/int_mul_ovf_bignum_promote.wasm.jitstats
pyre/bench/synth/iter_sentinel_stopiteration.cranelift.jitstats
pyre/bench/synth/iter_sentinel_stopiteration.dynasm.jitstats
pyre/bench/synth/iter_sentinel_stopiteration.wasm.jitstats
pyre/bench/synth/iteration_protocol.cranelift.jitstats
pyre/bench/synth/iteration_protocol.dynasm.jitstats
pyre/bench/synth/iteration_protocol.wasm.jitstats
pyre/bench/synth/itertools_cycle.cranelift.jitstats
pyre/bench/synth/itertools_cycle.dynasm.jitstats
pyre/bench/synth/itertools_cycle.wasm.jitstats
pyre/bench/synth/jit_callee_raised_exc_value.cranelift.jitstats
pyre/bench/synth/jit_callee_raised_exc_value.dynasm.jitstats
pyre/bench/synth/jit_callee_raised_exc_value.wasm.jitstats
pyre/bench/synth/jit_reg_const_pool_256_slot_decline.cranelift.jitstats
pyre/bench/synth/jit_reg_const_pool_256_slot_decline.dynasm.jitstats
pyre/bench/synth/jit_reg_const_pool_256_slot_decline.wasm.jitstats
pyre/bench/synth/kept_stack_aliased_swap_boxed.cranelift.jitstats
pyre/bench/synth/kept_stack_aliased_swap_boxed.dynasm.jitstats
pyre/bench/synth/kept_stack_aliased_swap_boxed.wasm.jitstats
pyre/bench/synth/kept_stack_boxed_in_handler.cranelift.jitstats
pyre/bench/synth/kept_stack_boxed_in_handler.dynasm.jitstats
pyre/bench/synth/kept_stack_boxed_in_handler.wasm.jitstats
pyre/bench/synth/kept_stack_branch_depths.cranelift.jitstats
pyre/bench/synth/kept_stack_branch_depths.dynasm.jitstats
pyre/bench/synth/kept_stack_branch_depths.wasm.jitstats
pyre/bench/synth/kept_stack_deep_var_condexpr.cranelift.jitstats
pyre/bench/synth/kept_stack_deep_var_condexpr.dynasm.jitstats
pyre/bench/synth/kept_stack_deep_var_condexpr.wasm.jitstats
pyre/bench/synth/kept_stack_deep_var_nested_call.cranelift.jitstats
pyre/bench/synth/kept_stack_deep_var_nested_call.dynasm.jitstats
pyre/bench/synth/kept_stack_deep_var_nested_call.wasm.jitstats
pyre/bench/synth/kept_stack_deep_var_shortcircuit.cranelift.jitstats
pyre/bench/synth/kept_stack_deep_var_shortcircuit.dynasm.jitstats
pyre/bench/synth/kept_stack_deep_var_shortcircuit.wasm.jitstats
pyre/bench/synth/kept_stack_depth_gt1.cranelift.jitstats
pyre/bench/synth/kept_stack_depth_gt1.dynasm.jitstats
pyre/bench/synth/kept_stack_depth_gt1.wasm.jitstats
pyre/bench/synth/kept_stack_depth_gt1_heap.cranelift.jitstats
pyre/bench/synth/kept_stack_depth_gt1_heap.dynasm.jitstats
pyre/bench/synth/kept_stack_depth_gt1_heap.wasm.jitstats
pyre/bench/synth/key_eq_resize_restart.cranelift.jitstats
pyre/bench/synth/key_eq_resize_restart.dynasm.jitstats
pyre/bench/synth/key_eq_resize_restart.wasm.jitstats
pyre/bench/synth/key_eq_restart_forgets.cranelift.jitstats
pyre/bench/synth/key_eq_restart_forgets.dynasm.jitstats
pyre/bench/synth/key_eq_restart_forgets.wasm.jitstats
pyre/bench/synth/kwargs_positional_only.cranelift.jitstats
pyre/bench/synth/kwargs_positional_only.dynasm.jitstats
pyre/bench/synth/kwargs_positional_only.wasm.jitstats
pyre/bench/synth/len_dunder_validation.cranelift.jitstats
pyre/bench/synth/len_dunder_validation.dynasm.jitstats
pyre/bench/synth/len_dunder_validation.wasm.jitstats
pyre/bench/synth/list_append_funcentry_helper.cranelift.jitstats
pyre/bench/synth/list_append_funcentry_helper.dynasm.jitstats
pyre/bench/synth/list_append_funcentry_helper.wasm.jitstats
pyre/bench/synth/list_append_virtual_payload.cranelift.jitstats
pyre/bench/synth/list_append_virtual_payload.dynasm.jitstats
pyre/bench/synth/list_append_virtual_payload.wasm.jitstats
pyre/bench/synth/list_append_write_barrier_gc.cranelift.jitstats
pyre/bench/synth/list_append_write_barrier_gc.dynasm.jitstats
pyre/bench/synth/list_append_write_barrier_gc.wasm.jitstats
pyre/bench/synth/list_bound_method_mutation.cranelift.jitstats
pyre/bench/synth/list_bound_method_mutation.dynasm.jitstats
pyre/bench/synth/list_bound_method_mutation.wasm.jitstats
pyre/bench/synth/list_error_parity.cranelift.jitstats
pyre/bench/synth/list_error_parity.dynasm.jitstats
pyre/bench/synth/list_error_parity.wasm.jitstats
pyre/bench/synth/list_inplace_mul_parity.cranelift.jitstats
pyre/bench/synth/list_inplace_mul_parity.dynasm.jitstats
pyre/bench/synth/list_inplace_mul_parity.wasm.jitstats
pyre/bench/synth/list_insert.cranelift.jitstats
pyre/bench/synth/list_insert.dynasm.jitstats
pyre/bench/synth/list_insert.wasm.jitstats
pyre/bench/synth/list_insert_pop_index.cranelift.jitstats
pyre/bench/synth/list_insert_pop_index.dynasm.jitstats
pyre/bench/synth/list_insert_pop_index.wasm.jitstats
pyre/bench/synth/list_length_hint_validate.cranelift.jitstats
pyre/bench/synth/list_length_hint_validate.dynasm.jitstats
pyre/bench/synth/list_length_hint_validate.wasm.jitstats
pyre/bench/synth/list_nan_identity.cranelift.jitstats
pyre/bench/synth/list_nan_identity.dynasm.jitstats
pyre/bench/synth/list_nan_identity.wasm.jitstats
pyre/bench/synth/list_ops.cranelift.jitstats
pyre/bench/synth/list_ops.dynasm.jitstats
pyre/bench/synth/list_ops.wasm.jitstats
pyre/bench/synth/list_pop_append.cranelift.jitstats
pyre/bench/synth/list_pop_append.dynasm.jitstats
pyre/bench/synth/list_pop_append.wasm.jitstats
pyre/bench/synth/list_reverse.cranelift.jitstats
pyre/bench/synth/list_reverse.dynasm.jitstats
pyre/bench/synth/list_reverse.wasm.jitstats
pyre/bench/synth/list_setslice.cranelift.jitstats
pyre/bench/synth/list_setslice.dynasm.jitstats
pyre/bench/synth/list_setslice.wasm.jitstats
pyre/bench/synth/list_subscript_index.cranelift.jitstats
pyre/bench/synth/list_subscript_index.dynasm.jitstats
pyre/bench/synth/list_subscript_index.wasm.jitstats
pyre/bench/synth/list_to_tuple_star.cranelift.jitstats
pyre/bench/synth/list_to_tuple_star.dynasm.jitstats
pyre/bench/synth/list_to_tuple_star.wasm.jitstats
pyre/bench/synth/listcomp_hot.cranelift.jitstats
pyre/bench/synth/listcomp_hot.dynasm.jitstats
pyre/bench/synth/listcomp_hot.wasm.jitstats
pyre/bench/synth/load_attr_blackhole_resume.cranelift.jitstats
pyre/bench/synth/load_attr_blackhole_resume.dynasm.jitstats
pyre/bench/synth/load_attr_blackhole_resume.wasm.jitstats
pyre/bench/synth/load_fast_check.cranelift.jitstats
pyre/bench/synth/load_fast_check.dynasm.jitstats
pyre/bench/synth/load_fast_check.wasm.jitstats
pyre/bench/synth/load_super_attr.cranelift.jitstats
pyre/bench/synth/load_super_attr.dynasm.jitstats
pyre/bench/synth/load_super_attr.wasm.jitstats
pyre/bench/synth/loop_callee_return.cranelift.jitstats
pyre/bench/synth/loop_callee_return.dynasm.jitstats
pyre/bench/synth/loop_callee_return.wasm.jitstats
pyre/bench/synth/loop_callee_shared_mutation.cranelift.jitstats
pyre/bench/synth/loop_callee_shared_mutation.dynasm.jitstats
pyre/bench/synth/loop_callee_shared_mutation.wasm.jitstats
pyre/bench/synth/loop_exit_empty_dict_local_clobber.cranelift.jitstats
pyre/bench/synth/loop_exit_empty_dict_local_clobber.dynasm.jitstats
pyre/bench/synth/loop_exit_empty_dict_local_clobber.wasm.jitstats
pyre/bench/synth/loops_comprehension.cranelift.jitstats
pyre/bench/synth/loops_comprehension.dynasm.jitstats
pyre/bench/synth/loops_comprehension.wasm.jitstats
pyre/bench/synth/mapdict_frozen_unboxing_fold.cranelift.jitstats
pyre/bench/synth/mapdict_frozen_unboxing_fold.dynasm.jitstats
pyre/bench/synth/mapdict_frozen_unboxing_fold.wasm.jitstats
pyre/bench/synth/mapdict_polymorphic_map_attr.cranelift.jitstats
pyre/bench/synth/mapdict_polymorphic_map_attr.dynasm.jitstats
pyre/bench/synth/mapdict_polymorphic_map_attr.wasm.jitstats
pyre/bench/synth/mapdict_unboxed_type_change_attr.cranelift.jitstats
pyre/bench/synth/mapdict_unboxed_type_change_attr.dynasm.jitstats
pyre/bench/synth/mapdict_unboxed_type_change_attr.wasm.jitstats
pyre/bench/synth/match_sequence_of_class_patterns.cranelift.jitstats
pyre/bench/synth/match_sequence_of_class_patterns.dynasm.jitstats
pyre/bench/synth/match_sequence_of_class_patterns.wasm.jitstats
pyre/bench/synth/math_isqrt_compare_bridge_resume.cranelift.jitstats
pyre/bench/synth/math_isqrt_compare_bridge_resume.dynasm.jitstats
pyre/bench/synth/math_isqrt_compare_bridge_resume.wasm.jitstats
pyre/bench/synth/math_sqrt_hot.cranelift.jitstats
pyre/bench/synth/math_sqrt_hot.dynasm.jitstats
pyre/bench/synth/math_sqrt_hot.wasm.jitstats
pyre/bench/synth/metaclass_conflict.cranelift.jitstats
pyre/bench/synth/metaclass_conflict.dynasm.jitstats
pyre/bench/synth/metaclass_conflict.wasm.jitstats
pyre/bench/synth/metaclass_getattr.cranelift.jitstats
pyre/bench/synth/metaclass_getattr.dynasm.jitstats
pyre/bench/synth/metaclass_getattr.wasm.jitstats
pyre/bench/synth/metaclass_getattribute_delattr.cranelift.jitstats
pyre/bench/synth/metaclass_getattribute_delattr.dynasm.jitstats
pyre/bench/synth/metaclass_getattribute_delattr.wasm.jitstats
pyre/bench/synth/metatype_property_dunder.cranelift.jitstats
pyre/bench/synth/metatype_property_dunder.dynasm.jitstats
pyre/bench/synth/metatype_property_dunder.wasm.jitstats
pyre/bench/synth/method_reassign_after_warmup.cranelift.jitstats
pyre/bench/synth/method_reassign_after_warmup.dynasm.jitstats
pyre/bench/synth/method_reassign_after_warmup.wasm.jitstats
pyre/bench/synth/minmax_key_rooting.cranelift.jitstats
pyre/bench/synth/minmax_key_rooting.dynasm.jitstats
pyre/bench/synth/minmax_key_rooting.wasm.jitstats
pyre/bench/synth/module_attr_message.cranelift.jitstats
pyre/bench/synth/module_attr_message.dynasm.jitstats
pyre/bench/synth/module_attr_message.wasm.jitstats
pyre/bench/synth/module_body_truncated_jitcode_replay.cranelift.jitstats
pyre/bench/synth/module_body_truncated_jitcode_replay.dynasm.jitstats
pyre/bench/synth/module_body_truncated_jitcode_replay.wasm.jitstats
pyre/bench/synth/module_dir_dunder.cranelift.jitstats
pyre/bench/synth/module_dir_dunder.dynasm.jitstats
pyre/bench/synth/module_dir_dunder.wasm.jitstats
pyre/bench/synth/module_function_not_descriptor.cranelift.jitstats
pyre/bench/synth/module_function_not_descriptor.dynasm.jitstats
pyre/bench/synth/module_function_not_descriptor.wasm.jitstats
pyre/bench/synth/module_getattr.cranelift.jitstats
pyre/bench/synth/module_getattr.dynasm.jitstats
pyre/bench/synth/module_getattr.wasm.jitstats
pyre/bench/synth/module_getattr_descr_error.cranelift.jitstats
pyre/bench/synth/module_getattr_descr_error.dynasm.jitstats
pyre/bench/synth/module_getattr_descr_error.wasm.jitstats
pyre/bench/synth/module_getattr_surrogate_cls.cranelift.jitstats
pyre/bench/synth/module_getattr_surrogate_cls.dynasm.jitstats
pyre/bench/synth/module_getattr_surrogate_cls.wasm.jitstats
pyre/bench/synth/mutate_then_raise_caught.cranelift.jitstats
pyre/bench/synth/mutate_then_raise_caught.dynasm.jitstats
pyre/bench/synth/mutate_then_raise_caught.wasm.jitstats
pyre/bench/synth/mutate_uncaught_raise_delivery.cranelift.jitstats
pyre/bench/synth/mutate_uncaught_raise_delivery.dynasm.jitstats
pyre/bench/synth/mutate_uncaught_raise_delivery.wasm.jitstats
pyre/bench/synth/named_reraise_sibling_hot.cranelift.jitstats
pyre/bench/synth/named_reraise_sibling_hot.dynasm.jitstats
pyre/bench/synth/named_reraise_sibling_hot.wasm.jitstats
pyre/bench/synth/nested_break_not_hot.cranelift.jitstats
pyre/bench/synth/nested_break_not_hot.dynasm.jitstats
pyre/bench/synth/nested_break_not_hot.wasm.jitstats
pyre/bench/synth/nested_callee_chain_mutation_abort.cranelift.jitstats
pyre/bench/synth/nested_callee_chain_mutation_abort.dynasm.jitstats
pyre/bench/synth/nested_callee_chain_mutation_abort.wasm.jitstats
pyre/bench/synth/nested_for_int_scratch_bridge.cranelift.jitstats
pyre/bench/synth/nested_for_int_scratch_bridge.dynasm.jitstats
pyre/bench/synth/nested_for_int_scratch_bridge.wasm.jitstats
pyre/bench/synth/nested_for_outer_local_postread.cranelift.jitstats
pyre/bench/synth/nested_for_outer_local_postread.dynasm.jitstats
pyre/bench/synth/nested_for_outer_local_postread.wasm.jitstats
pyre/bench/synth/nested_for_varying_trip.cranelift.jitstats
pyre/bench/synth/nested_for_varying_trip.dynasm.jitstats
pyre/bench/synth/nested_for_varying_trip.wasm.jitstats
pyre/bench/synth/nested_foriter_poly.cranelift.jitstats
pyre/bench/synth/nested_foriter_poly.dynasm.jitstats
pyre/bench/synth/nested_foriter_poly.wasm.jitstats
pyre/bench/synth/nested_loop_correctness.cranelift.jitstats
pyre/bench/synth/nested_loop_correctness.dynasm.jitstats
pyre/bench/synth/nested_loop_correctness.wasm.jitstats
pyre/bench/synth/nested_loop_gate_switch.cranelift.jitstats
pyre/bench/synth/nested_loop_gate_switch.dynasm.jitstats
pyre/bench/synth/nested_loop_gate_switch.wasm.jitstats
pyre/bench/synth/newslice_step_hot.cranelift.jitstats
pyre/bench/synth/newslice_step_hot.dynasm.jitstats
pyre/bench/synth/newslice_step_hot.wasm.jitstats
pyre/bench/synth/object_getattribute_no_hook.cranelift.jitstats
pyre/bench/synth/object_getattribute_no_hook.dynasm.jitstats
pyre/bench/synth/object_getattribute_no_hook.wasm.jitstats
pyre/bench/synth/operator_error_typename.cranelift.jitstats
pyre/bench/synth/operator_error_typename.dynasm.jitstats
pyre/bench/synth/operator_error_typename.wasm.jitstats
pyre/bench/synth/operator_set_inplace_ops.cranelift.jitstats
pyre/bench/synth/operator_set_inplace_ops.dynasm.jitstats
pyre/bench/synth/operator_set_inplace_ops.wasm.jitstats
pyre/bench/synth/or_chain_fresh_alloc_arg.cranelift.jitstats
pyre/bench/synth/or_chain_fresh_alloc_arg.dynasm.jitstats
pyre/bench/synth/or_chain_fresh_alloc_arg.wasm.jitstats
pyre/bench/synth/p2_local_result_bridge.cranelift.jitstats
pyre/bench/synth/p2_local_result_bridge.dynasm.jitstats
pyre/bench/synth/p2_local_result_bridge.wasm.jitstats
pyre/bench/synth/pickle_ctor_args.cranelift.jitstats
pyre/bench/synth/pickle_ctor_args.dynasm.jitstats
pyre/bench/synth/pickle_ctor_args.wasm.jitstats
pyre/bench/synth/polymorphic_binary_receiver.cranelift.jitstats
pyre/bench/synth/polymorphic_binary_receiver.dynasm.jitstats
pyre/bench/synth/polymorphic_binary_receiver.wasm.jitstats
pyre/bench/synth/polymorphic_slot_retype.cranelift.jitstats
pyre/bench/synth/polymorphic_slot_retype.dynasm.jitstats
pyre/bench/synth/polymorphic_slot_retype.wasm.jitstats
pyre/bench/synth/pow3_arg_types.cranelift.jitstats
pyre/bench/synth/pow3_arg_types.dynasm.jitstats
pyre/bench/synth/pow3_arg_types.wasm.jitstats
pyre/bench/synth/print_stdout_redirect.cranelift.jitstats
pyre/bench/synth/print_stdout_redirect.dynasm.jitstats
pyre/bench/synth/print_stdout_redirect.wasm.jitstats
pyre/bench/synth/property_custom_hook_decline.cranelift.jitstats
pyre/bench/synth/property_custom_hook_decline.dynasm.jitstats
pyre/bench/synth/property_custom_hook_decline.wasm.jitstats
pyre/bench/synth/property_getattr_exceptions.cranelift.jitstats
pyre/bench/synth/property_getattr_exceptions.dynasm.jitstats
pyre/bench/synth/property_getattr_exceptions.wasm.jitstats
pyre/bench/synth/property_protocol_hot.cranelift.jitstats
pyre/bench/synth/property_protocol_hot.dynasm.jitstats
pyre/bench/synth/property_protocol_hot.wasm.jitstats
pyre/bench/synth/pure_listload_raw.cranelift.jitstats
pyre/bench/synth/pure_listload_raw.dynasm.jitstats
pyre/bench/synth/pure_listload_raw.wasm.jitstats
pyre/bench/synth/pure_tupleload.cranelift.jitstats
pyre/bench/synth/pure_tupleload.dynasm.jitstats
pyre/bench/synth/pure_tupleload.wasm.jitstats
pyre/bench/synth/recursion_memo_branch.cranelift.jitstats
pyre/bench/synth/recursion_memo_branch.dynasm.jitstats
pyre/bench/synth/recursion_memo_branch.wasm.jitstats
pyre/bench/synth/recursive_call_frame_relocation.cranelift.jitstats
pyre/bench/synth/recursive_call_frame_relocation.dynasm.jitstats
pyre/bench/synth/recursive_call_frame_relocation.wasm.jitstats
pyre/bench/synth/reentrant_key_eq_mutation.cranelift.jitstats
pyre/bench/synth/reentrant_key_eq_mutation.dynasm.jitstats
pyre/bench/synth/reentrant_key_eq_mutation.wasm.jitstats
pyre/bench/synth/residual_raise_except_resume.cranelift.jitstats
pyre/bench/synth/residual_raise_except_resume.dynasm.jitstats
pyre/bench/synth/residual_raise_except_resume.wasm.jitstats
pyre/bench/synth/reversed_disabled.cranelift.jitstats
pyre/bench/synth/reversed_disabled.dynasm.jitstats
pyre/bench/synth/reversed_disabled.wasm.jitstats
pyre/bench/synth/selfrec_tail_exception_unwind.cranelift.jitstats
pyre/bench/synth/selfrec_tail_exception_unwind.dynasm.jitstats
pyre/bench/synth/selfrec_tail_exception_unwind.wasm.jitstats
pyre/bench/synth/seq_repeat_overflow.cranelift.jitstats
pyre/bench/synth/seq_repeat_overflow.dynasm.jitstats
pyre/bench/synth/seq_repeat_overflow.wasm.jitstats
pyre/bench/synth/seqiter_getitem_lazy.cranelift.jitstats
pyre/bench/synth/seqiter_getitem_lazy.dynasm.jitstats
pyre/bench/synth/seqiter_getitem_lazy.wasm.jitstats
pyre/bench/synth/seqiter_pickle_parity.cranelift.jitstats
pyre/bench/synth/seqiter_pickle_parity.dynasm.jitstats
pyre/bench/synth/seqiter_pickle_parity.wasm.jitstats
pyre/bench/synth/seqiter_tuple_error_parity.cranelift.jitstats
pyre/bench/synth/seqiter_tuple_error_parity.dynasm.jitstats
pyre/bench/synth/seqiter_tuple_error_parity.wasm.jitstats
pyre/bench/synth/sequence_repeat_index.cranelift.jitstats
pyre/bench/synth/sequence_repeat_index.dynasm.jitstats
pyre/bench/synth/sequence_repeat_index.wasm.jitstats
pyre/bench/synth/set_contains_frozenset.cranelift.jitstats
pyre/bench/synth/set_contains_frozenset.dynasm.jitstats
pyre/bench/synth/set_contains_frozenset.wasm.jitstats
pyre/bench/synth/set_hash_protocol.cranelift.jitstats
pyre/bench/synth/set_hash_protocol.dynasm.jitstats
pyre/bench/synth/set_hash_protocol.wasm.jitstats
pyre/bench/synth/set_intersection_operand.cranelift.jitstats
pyre/bench/synth/set_intersection_operand.dynasm.jitstats
pyre/bench/synth/set_intersection_operand.wasm.jitstats
pyre/bench/synth/set_key_protocol.cranelift.jitstats
pyre/bench/synth/set_key_protocol.dynasm.jitstats
pyre/bench/synth/set_key_protocol.wasm.jitstats
pyre/bench/synth/set_method_arity.cranelift.jitstats
pyre/bench/synth/set_method_arity.dynasm.jitstats
pyre/bench/synth/set_method_arity.wasm.jitstats
pyre/bench/synth/set_name_filtered_dict.cranelift.jitstats
pyre/bench/synth/set_name_filtered_dict.dynasm.jitstats
pyre/bench/synth/set_name_filtered_dict.wasm.jitstats
pyre/bench/synth/set_reentrant_eq_mutation.cranelift.jitstats
pyre/bench/synth/set_reentrant_eq_mutation.dynasm.jitstats
pyre/bench/synth/set_reentrant_eq_mutation.wasm.jitstats
pyre/bench/synth/set_remove_ord_errors.cranelift.jitstats
pyre/bench/synth/set_remove_ord_errors.dynasm.jitstats
pyre/bench/synth/set_remove_ord_errors.wasm.jitstats
pyre/bench/synth/set_update_hash_other.cranelift.jitstats
pyre/bench/synth/set_update_hash_other.dynasm.jitstats
pyre/bench/synth/set_update_hash_other.wasm.jitstats
pyre/bench/synth/set_update_hot.cranelift.jitstats
pyre/bench/synth/set_update_hot.dynasm.jitstats
pyre/bench/synth/set_update_hot.wasm.jitstats
pyre/bench/synth/set_update_materialize_rhs.cranelift.jitstats
pyre/bench/synth/set_update_materialize_rhs.dynasm.jitstats
pyre/bench/synth/set_update_materialize_rhs.wasm.jitstats
pyre/bench/synth/short_circuit_boxed_int_cross_fn.cranelift.jitstats
pyre/bench/synth/short_circuit_boxed_int_cross_fn.dynasm.jitstats
pyre/bench/synth/short_circuit_boxed_int_cross_fn.wasm.jitstats
pyre/bench/synth/short_circuit_falsy_func_entry_resume.cranelift.jitstats
pyre/bench/synth/short_circuit_falsy_func_entry_resume.dynasm.jitstats
pyre/bench/synth/short_circuit_falsy_func_entry_resume.wasm.jitstats
pyre/bench/synth/short_circuit_side_effects.cranelift.jitstats
pyre/bench/synth/short_circuit_side_effects.dynasm.jitstats
pyre/bench/synth/short_circuit_side_effects.wasm.jitstats
pyre/bench/synth/short_circuit_value_kept_stack.cranelift.jitstats
pyre/bench/synth/short_circuit_value_kept_stack.dynasm.jitstats
pyre/bench/synth/short_circuit_value_kept_stack.wasm.jitstats
pyre/bench/synth/short_circuit_value_local_kept.cranelift.jitstats
pyre/bench/synth/short_circuit_value_local_kept.dynasm.jitstats
pyre/bench/synth/short_circuit_value_local_kept.wasm.jitstats
pyre/bench/synth/simple_namespace_type.cranelift.jitstats
pyre/bench/synth/simple_namespace_type.dynasm.jitstats
pyre/bench/synth/simple_namespace_type.wasm.jitstats
pyre/bench/synth/slots_class_var_conflict.cranelift.jitstats
pyre/bench/synth/slots_class_var_conflict.dynasm.jitstats
pyre/bench/synth/slots_class_var_conflict.wasm.jitstats
pyre/bench/synth/sre_pattern_methods.cranelift.jitstats
pyre/bench/synth/sre_pattern_methods.dynasm.jitstats
pyre/bench/synth/sre_pattern_methods.wasm.jitstats
pyre/bench/synth/sre_wasm_min.cranelift.jitstats
pyre/bench/synth/sre_wasm_min.dynasm.jitstats
pyre/bench/synth/sre_wasm_min.wasm.jitstats
pyre/bench/synth/sre_wasm_min1.cranelift.jitstats
pyre/bench/synth/sre_wasm_min1.dynasm.jitstats
pyre/bench/synth/sre_wasm_min1.wasm.jitstats
pyre/bench/synth/store_global_hot.cranelift.jitstats
pyre/bench/synth/store_global_hot.dynasm.jitstats
pyre/bench/synth/store_global_hot.wasm.jitstats
pyre/bench/synth/store_slice_hot.cranelift.jitstats
pyre/bench/synth/store_slice_hot.dynasm.jitstats
pyre/bench/synth/store_slice_hot.wasm.jitstats
pyre/bench/synth/str_encode_text_codec.cranelift.jitstats
pyre/bench/synth/str_encode_text_codec.dynasm.jitstats
pyre/bench/synth/str_encode_text_codec.wasm.jitstats
pyre/bench/synth/str_fstring.cranelift.jitstats
pyre/bench/synth/str_fstring.dynasm.jitstats
pyre/bench/synth/str_fstring.wasm.jitstats
pyre/bench/synth/str_getitem_len_hot.cranelift.jitstats
pyre/bench/synth/str_getitem_len_hot.dynasm.jitstats
pyre/bench/synth/str_getitem_len_hot.wasm.jitstats
pyre/bench/synth/str_index_bytes_iter_surface.cranelift.jitstats
pyre/bench/synth/str_index_bytes_iter_surface.dynasm.jitstats
pyre/bench/synth/str_index_bytes_iter_surface.wasm.jitstats
pyre/bench/synth/str_search_index_bounds.cranelift.jitstats
pyre/bench/synth/str_search_index_bounds.dynasm.jitstats
pyre/bench/synth/str_search_index_bounds.wasm.jitstats
pyre/bench/synth/str_startswith_bounds.cranelift.jitstats
pyre/bench/synth/str_startswith_bounds.dynasm.jitstats
pyre/bench/synth/str_startswith_bounds.wasm.jitstats
pyre/bench/synth/struct_pack_unpack.cranelift.jitstats
pyre/bench/synth/struct_pack_unpack.dynasm.jitstats
pyre/bench/synth/struct_pack_unpack.wasm.jitstats
pyre/bench/synth/subscr_negative_index_deopt.cranelift.jitstats
pyre/bench/synth/subscr_negative_index_deopt.dynasm.jitstats
pyre/bench/synth/subscr_negative_index_deopt.wasm.jitstats
pyre/bench/synth/surrogate_class_kwargs.cranelift.jitstats
pyre/bench/synth/surrogate_class_kwargs.dynasm.jitstats
pyre/bench/synth/surrogate_class_kwargs.wasm.jitstats
pyre/bench/synth/surrogate_dir.cranelift.jitstats
pyre/bench/synth/surrogate_dir.dynasm.jitstats
pyre/bench/synth/surrogate_dir.wasm.jitstats
pyre/bench/synth/surrogate_kwargs.cranelift.jitstats
pyre/bench/synth/surrogate_kwargs.dynasm.jitstats
pyre/bench/synth/surrogate_kwargs.wasm.jitstats
pyre/bench/synth/surrogate_metaclass_kwargs.cranelift.jitstats
pyre/bench/synth/surrogate_metaclass_kwargs.dynasm.jitstats
pyre/bench/synth/surrogate_metaclass_kwargs.wasm.jitstats
pyre/bench/synth/swap_except_return_resume.cranelift.jitstats
pyre/bench/synth/swap_except_return_resume.dynasm.jitstats
pyre/bench/synth/swap_except_return_resume.wasm.jitstats
pyre/bench/synth/syntaxerror_location.cranelift.jitstats
pyre/bench/synth/syntaxerror_location.dynasm.jitstats
pyre/bench/synth/syntaxerror_location.wasm.jitstats
pyre/bench/synth/syntaxerror_str.cranelift.jitstats
pyre/bench/synth/syntaxerror_str.dynasm.jitstats
pyre/bench/synth/syntaxerror_str.wasm.jitstats
pyre/bench/synth/trace_too_long_effect_replay.cranelift.jitstats
pyre/bench/synth/trace_too_long_effect_replay.dynasm.jitstats
pyre/bench/synth/trace_too_long_effect_replay.wasm.jitstats
pyre/bench/synth/trace_too_long_inline_multiframe.cranelift.jitstats
pyre/bench/synth/trace_too_long_inline_multiframe.dynasm.jitstats
pyre/bench/synth/trace_too_long_inline_multiframe.wasm.jitstats
pyre/bench/synth/tuple_contains_eq_raises.cranelift.jitstats
pyre/bench/synth/tuple_contains_eq_raises.dynasm.jitstats
pyre/bench/synth/tuple_contains_eq_raises.wasm.jitstats
pyre/bench/synth/tuple_str_bytes_subscript_index.cranelift.jitstats
pyre/bench/synth/tuple_str_bytes_subscript_index.dynasm.jitstats
pyre/bench/synth/tuple_str_bytes_subscript_index.wasm.jitstats
pyre/bench/synth/type_descr_get_metaclass_getattr.cranelift.jitstats
pyre/bench/synth/type_descr_get_metaclass_getattr.dynasm.jitstats
pyre/bench/synth/type_descr_get_metaclass_getattr.wasm.jitstats
pyre/bench/synth/type_dict_surrogate.cranelift.jitstats
pyre/bench/synth/type_dict_surrogate.dynasm.jitstats
pyre/bench/synth/type_dict_surrogate.wasm.jitstats
pyre/bench/synth/type_dotted_name.cranelift.jitstats
pyre/bench/synth/type_dotted_name.dynasm.jitstats
pyre/bench/synth/type_dotted_name.wasm.jitstats
pyre/bench/synth/type_error_message_parity.cranelift.jitstats
pyre/bench/synth/type_error_message_parity.dynasm.jitstats
pyre/bench/synth/type_error_message_parity.wasm.jitstats
pyre/bench/synth/type_immutable_reject.cranelift.jitstats
pyre/bench/synth/type_immutable_reject.dynasm.jitstats
pyre/bench/synth/type_immutable_reject.wasm.jitstats
pyre/bench/synth/type_metatype_data_descr.cranelift.jitstats
pyre/bench/synth/type_metatype_data_descr.dynasm.jitstats
pyre/bench/synth/type_metatype_data_descr.wasm.jitstats
pyre/bench/synth/type_metatype_method_call.cranelift.jitstats
pyre/bench/synth/type_metatype_method_call.dynasm.jitstats
pyre/bench/synth/type_metatype_method_call.wasm.jitstats
pyre/bench/synth/type_name_setter.cranelift.jitstats
pyre/bench/synth/type_name_setter.dynasm.jitstats
pyre/bench/synth/type_name_setter.wasm.jitstats
pyre/bench/synth/type_name_surrogate_reject.cranelift.jitstats
pyre/bench/synth/type_name_surrogate_reject.dynasm.jitstats
pyre/bench/synth/type_name_surrogate_reject.wasm.jitstats
pyre/bench/synth/unary_int_loop_carried.cranelift.jitstats
pyre/bench/synth/unary_int_loop_carried.dynasm.jitstats
pyre/bench/synth/unary_int_loop_carried.wasm.jitstats
pyre/bench/synth/unary_negative.cranelift.jitstats
pyre/bench/synth/unary_negative.dynasm.jitstats
pyre/bench/synth/unary_negative.wasm.jitstats
pyre/bench/synth/unary_positive_resume.cranelift.jitstats
pyre/bench/synth/unary_positive_resume.dynasm.jitstats
pyre/bench/synth/unary_positive_resume.wasm.jitstats
pyre/bench/synth/unpack_drain_star_raise.cranelift.jitstats
pyre/bench/synth/unpack_drain_star_raise.dynasm.jitstats
pyre/bench/synth/unpack_drain_star_raise.wasm.jitstats
pyre/bench/synth/unpack_ex_hot.cranelift.jitstats
pyre/bench/synth/unpack_ex_hot.dynasm.jitstats
pyre/bench/synth/unpack_ex_hot.wasm.jitstats
pyre/bench/synth/unpack_wrong_arity_caught.cranelift.jitstats
pyre/bench/synth/unpack_wrong_arity_caught.dynasm.jitstats
pyre/bench/synth/unpack_wrong_arity_caught.wasm.jitstats
pyre/bench/synth/wasm_ca_trampoline_decline.cranelift.jitstats
pyre/bench/synth/wasm_ca_trampoline_decline.dynasm.jitstats
pyre/bench/synth/wasm_ca_trampoline_decline.wasm.jitstats
pyre/bench/synth/while_is_none.cranelift.jitstats
pyre/bench/synth/while_is_none.dynasm.jitstats
pyre/bench/synth/while_is_none.wasm.jitstats
pyre/check.py
pyre/pyre-jit-trace/src/assembler.rs
pyre/pyre-jit-trace/src/jitcode_dispatch/resume_snapshot.rs
pyre/pyre-jit-trace/src/state.rs

1. Regressions to PyPy parity introduced by this patch

  • pyre/pyre-jit-trace/src/jitcode_dispatch/resume_snapshot.rs:1292-1320 ↔ pypy/objspace/std/callmethod.py:85-93call_null_or_self_slot unconditionally inserts a null override for every decoded CALL. PyPy distinguishes a null receiver from an implicit method receiver (w_self); method calls must preserve the non-null receiver. The new code checks neither the preceding PUSH_NULL nor method-call form, so an unresolved method receiver can be resumed as null.

2. Other mismatches introduced by this patch

None.

3. Pre-existing mismatches (already present before this patch)

None.

4. Structural adaptations

  • pyre/pyre-jit-trace/src/state.rs:480-528 ↔ rpython/jit/codewriter/assembler.py:225-245 — Rust receives register slices rather than Python sets, so it sorts/deduplicates them before encoding; this is the language-level equivalent of set/frozenset canonicalization.
  • majit/majit-gc/src/lib.rs:102-108 and majit/majit-gc/src/collector.rs:1357-1364 ↔ no corresponding RPython/PyPy implementationMAJIT_LOG is a Rust-specific diagnostic gate, cached with LazyLock; this has no interpreter-semantics counterpart.
  • pyre/check.py:524-641,1006-1023 ↔ no corresponding RPython/PyPy implementation — jit-stat regression floors and mandatory baseline checks are repository test-harness policy, not a PyPy/RPython runtime port.
  • The numerous pyre/bench/synth/*.jitstats additions ↔ no corresponding RPython/PyPy implementation — generated benchmark baselines rather than translated interpreter/JIT logic.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c1ebe654f7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pyre/check.py
Comment on lines +606 to +608
for field in (
JITSTATS_BADNESS_FIELDS + JITSTATS_RISE_BOUNDED_FIELDS + JITSTATS_FALL_FIELDS
):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep unverified count-valued JIT stats informational

On the default pyre/check.py jobs for Ubuntu, macOS, and Windows, this adds guard_failures and loops_compiled to the hard regression floor, so any host that compiles fewer loops than the committed baseline—or exceeds its guard count by the band—now fails CI. The existing pipeline explicitly documents in .github/workflows/pyre-ci.yml:408-412 that these absolute counts were recorded on macOS aarch64, have not been confirmed cross-runner or cross-platform, and must remain informational; it therefore runs their comparison under continue-on-error. Keep these fields out of the default hard gate until those summaries establish stability, or provide platform-specific baselines.

Useful? React with 👍 / 👎.

`intern_liveness` keyed its dedup table on the sorted, deduped form of its
three `&[u8]` arguments but took the record's count bytes and encoded
bitsets from the raw slices. `encode_liveness` dedups, so a repeated
register index made the count exceed the bitset's cardinality.
`LivenessIterator` is driven by that count, so decoding such a record read
past its own bitset into the following record's bytes and swallowed it.

Read the counts and the bytes off the canonical form already computed for
the key, matching `majit-translate`'s producer, which counts the `VecSet`
it encodes from (codewriter/assembler.rs:1060).

Assisted-by: Claude
…ehind them

`execute_token` brackets every entry into compiled code with
`debug_validate_oldgen_freeblocks`, which read `PYRE_GC_FREELIST_DIAG` with
`std::env::var_os` on each call, and it read `PYRE_DYNASM_EXEC_DIAG` the same
way — three `getenv`s per trace entry, each taking the environment lock and
scanning the array. The two bracket calls also built their `site` string with
`format!` before the gate, so a disabled diagnostic still allocated and
formatted one per trace entry, and `dynasm_debug_validate_oldgen_freeblocks`
one per residual call site.

Cache both gates in a `LazyLock<bool>` as `majit_log_enabled` does, take `site`
as `Arguments` so the string is materialised only past the gate, and do the
same for `MAJIT_LOG` in `do_collect_nursery` / `finish_incremental_cycle` and
`PYRE_GC_FREELIST_DIAG` in `dynasm_nursery_slowpath`.

On a 20x-scaled `recursion_memo_branch` the startup-subtracted user-CPU exec
time goes 0.7609s to 0.6566s (0.863x, min of 7 interleaved rounds, same host),
output unchanged; `__findenv_locked` and `std::env::__var_os` fall from 43 of
388 working samples to 0 of 581.

Also correct the comment above the `should_disable` application: it cited
`trace_opcode.rs:3044-3049` as a second site applying
`disable_noninlinable_function`, where no such symbol exists.

Assisted-by: Claude
`collect_call_stack_overrides` had no source for the `null_or_self` operand a
`PUSH_NULL` leaves under a `CALL`: the walk holds no box for that slot, no live
color names it, and the virtualizable shadow reads back the same NULL an
unmirrored slot does. The slot stayed absent, so the outer-call flush that
follows a `LoopBearingCalleeInlineUnsupported` abort declined on "stack override
missing for a live slot" and fell back to the legacy rollback+replay, where
`fbw_foriter_inflight_take` refuses in-flight FOR_ITER delivery and the whole
iteration is dropped.

Name the slot from the CALL's own operand layout — `[callable, null_or_self,
arg0 .. arg_{argc-1}]` ends at the caller's stack top, so the sentinel sits
`argc + 1` below it — and push an explicit null override. A coordinate that
does not invert to a plain `CALL` keeps the existing decline.

The added `bench/synth/foriter_call_resume_drops_iteration.py` printed
`491088 8999` before this change and `491130 9000` after, matching CPython,
PyPy and `PYRE_NO_JIT=1`.

Assisted-by: Claude
… baseline

_jit_stats_regression_floor now iterates JITSTATS_RISE_BOUNDED_FIELDS in
addition to JITSTATS_BADNESS_FIELDS. A badness counter still fails on any rise
above its baseline; a rise-bounded counter fails only past
`base + max(base // 4, 2)`.

A field absent from the baseline keeps reading as 0 for the badness counters,
whose healthy value is 0, but leaves a rise-bounded counter unpinned: the wasm
[jit-stats] line reports no guard_failures, so every *.wasm.jitstats baseline
omits it.

guard_failures moves out of the informational snapshot surface into that gate.

Assisted-by: Claude
pyre/.gitignore ignored /bench/synth/*.jitstats with three `!` negations, so
the regression floor read a committed baseline for 3 of 340 synthetic fixtures
and skipped the other 337.

Recorded with `pyre/check.py --snapshot` (dynasm 355/355, cranelift 355/355,
wasm 351/351): 340 dynasm, 340 cranelift, 339 wasm —
getframe_caller_locals_nested_compiled_callee carries skip-backends=wasm.

Of the 1019 synthetic baselines, 872 record all-zero badness counters, 147
record a nonzero loops_aborted, and none record a nonzero descr_set_* or
internal_compile_panics.

Assisted-by: Claude
…tale

defaults_reassigned_midloop and del_cellvar_walk_commit arrived from
origin/main with no .jitstats baseline, so the regression floor skipped them.

type_metatype_method_call moves loops_compiled 4 -> 2, bridges_compiled 47 -> 0
and guard_failures 9480 -> 1 on the native backends, the effect #925 records in
its own message. comprehension_object_append_hot.dynasm moves guard_failures
3611 -> 3612.

Assisted-by: Claude
… baseline

JITSTATS_FALL_FIELDS gates a counter whose defect direction is down.
loops_compiled is its first member: a pre-trace decline aborts nothing, so
loops_aborted holds, and it removes the compiled guards that used to fail, so
guard_failures falls — both existing gates read the loss as an improvement
while the hot loop runs interpreted.

The fall is gated exactly rather than through a band. Diffing the dynasm and
cranelift baselines across the 341 synthetic fixtures, the two code generators
agree on loops_compiled for 340 of them (99.7%), against 97.4% for
guard_failures.

A benchmark that emits a [jit-stats] line but has no committed baseline now
fails instead of passing. Every gate above compares against nothing when the
file is absent, so "never recorded" and "recorded and clean" print the same
PASS — which is how the floor came to cover 3 of 340 synthetic fixtures.

Assisted-by: Claude
…nline moved

`#942` passes `allow_method_load_attr = true` at
`try_walker_inline_user_call`, so an unbound method-form callee whose body reads
`self.attr` inlines into the caller's loop instead of running as a residual
call. Three fixtures carry that shape (`c.add(i & 7)`, `self.process_word()`)
and lose the callee's separately compiled loop:

  class_attrs_methods               loops_compiled 2 -> 1  (dynasm, cranelift)
  foriter_inplace_immutable         loops_compiled 2 -> 1  (cranelift)
  inline_subwalk_mutating_residual  loops_compiled 4 -> 3  (cranelift)

Every counter that moves with them falls: `class_attrs_methods` cranelift
`guard_failures` 202 -> 1 and `bridges_compiled` 1 -> 0;
`inline_subwalk_mutating_residual` cranelift `guard_failures` 12316 -> 603 and
`loops_aborted` 1 -> 0, wasm `loops_aborted` 4 -> 2. The measured ratio for that
fixture is 13.1x dynasm / 17.2x cranelift, matching the 13.0x / 18.3x `#942`
records.

`method_reassign_after_warmup` arrived with `#940` and had no baseline, which
the missing-baseline gate reported on all three backends.

check.py: dynasm 359/359, cranelift 359/359, wasm 355/355.

Assisted-by: Claude
…-file list

The workflow appends `git diff --name-only upstream/main` to the review prompt
as the authoritative definition of "this patch". On a PR that re-records
check.py's jit-stats baselines in bulk that list reached 1027 entries and Codex
returned no report at all (exit 1); CodeRabbit skipped the same PR for being
927 files over its own 100-file limit.

`.jitstats` files are generated golden data with no RPython/PyPy counterpart, so
no parity finding can cite one. Exclude them from the list, report the withheld
count in the prompt header and in the empty-diff message, and put the same
exclusion in the prompt's own scope-discipline instruction, which is what the
local `/codex-review` path re-derives from.

On this branch the list goes from 1132 to 112 files.

Assisted-by: Claude
…e moved

`origin/main` alone reproduces the counters exactly, so this is not our branch:

  exception_reraise_tb_depth_hot        40 loops / 0 guards / 30 aborts / 0 bridges
                                    ->   4 loops / 1803 guards / 0 aborts / 9 bridges
  exception_reraise_tb_depth_jitstress 900 / 0 / 30 / 0 -> 805 / 1798 / 0 / 1

Both gated directions fired at once (`loops_compiled` down, `guard_failures` up)
and neither is a defect on the native backends. Interleaved user+sys CPU time,
min of 5, `e1e97e61d32` vs `origin/main`, same host: `_hot` 0.750s -> 0.370s
(2.03x faster), `_jitstress` 0.490s -> 0.490s. The 40 specialized loops with 30
aborts were the worse shape.

wasm moves the other way on the same two fixtures: `loops_aborted` 30 -> 44 and
30 -> 1198. Recording those pins the higher value, so the rise is stated here
rather than absorbed silently.

check.py, per fixture: dynasm 1/1, cranelift 1/1, wasm 1/1.

Assisted-by: Claude

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a115ce65a6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +1315 to +1318
let (pyre_interpreter::Instruction::Call { argc }, op_arg) =
pyre_interpreter::decode_instruction_at(code, py_pc)?
else {
return None;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Recover null slots for every supported call form

When the outer inlined call is CALL_KW or CALL_FUNCTION_EX, this match returns None, even though try_walker_inline_user_call explicitly supports both helpers and both stack layouts contain the same null_or_self slot. Consequently, a plain keyword/star call whose callee aborts—for example, a loop-bearing callee during an in-flight FOR_ITER—still omits its null slot from the overrides, declines the forward flush, and reaches the iteration-dropping legacy replay that this patch fixes for positional CALL. Decode these supported forms as well, accounting for the trailing kwnames or star/kwargs operands when calculating the slot.

AGENTS.md reference: AGENTS.md:L14-L20

Useful? React with 👍 / 👎.

@youknowone
youknowone merged commit 44e0c9c into main Aug 1, 2026
23 of 24 checks passed
@youknowone
youknowone deleted the aheui branch August 1, 2026 15:28
youknowone added a commit that referenced this pull request Aug 2, 2026
…d closure_freevar_branch_resume

Six synthetic fixtures landed without a `.jitstats` file, so check.py's
always-on regression floor hard-failed each of them with "no committed
jit-stats baseline" on every backend it ran:

  hot_loop_exit_then_class_stmt, raise_reg_unbound_jitstress     (#890)
  inline_freevar_after_mayforce, math_log_trig_hot,
  tuple_unpack_array_backed_hot                                  (#934)
  pypy_dict_primitives_nonbinding                                (#957)

Record all three backends for each. A native-only record desynchronizes the
tracked `*.wasm.jitstats` set, because `--backend wasm` is not in the default
backend list and so would keep comparing against nothing.

`closure_freevar_branch_resume` is re-recorded deliberately. Its committed
baseline is `loops_aborted=3 loops_compiled=6 guard_failures=23380
bridges_compiled=0`; it now measures `0 / 3 / 606 / 3`, identically on both
native backends. The compiled-unit total is unchanged at 6 — three units that
were compiled as separate loops are now compiled as bridges — while the aborts
disappear and the guard failures fall 38x. Every gated field moves the
tightening way (`loops_aborted` and `guard_failures` down, `loops_compiled`
down against a fall-gate that now pins 3 instead of 6), so the re-record arms
the floor further rather than disarming it. Only `bridges_compiled` rises, and
it is in no gated group.

Deliberately NOT re-recorded, so the floor keeps reporting them:

  exception_args_virtual                loops_aborted 0 -> 3
  exception_multi_handler_warmup        loops_aborted 0 -> 23
  exception_reraise_tb_depth_jitstress  loops_aborted 0 -> 1198, loops_compiled 805 -> 305
  list_length_hint_validate             loops_aborted 14 -> 34

These raise a `JITSTATS_BADNESS_FIELDS` counter, whose healthy value is 0.
Recording them would switch the floor off for those fixtures permanently,
which is the opposite of what the counter is for. They are main's own drift
away from the baselines `#947` recorded: every one reproduces on both native
backends with byte-identical counters, so the movement is walker-level rather
than backend-level. Attribution did not converge on a single commit — the nine
commits main landed after `#947` include three whose pre-merge check.py was
fully green, and reverting `#954` reproduces the counters exactly.

`pickle_terminal_raise_resume` (#845) also has no baseline, and is not
recorded here either: it does not fail the floor, it crashes (exit 1) on both
native backends. The unpickler's read position desyncs under the low JIT
thresholds the fixture sets, dispatching `readline()` payload bytes as
opcodes. `PYRE_JIT=0` and `pypy3` both pass, so a baseline would only record
the crash.

Assisted-by: Claude
youknowone added a commit that referenced this pull request Aug 7, 2026
…es no host

produces

`pyre/check.py` has been red on main for binary_int_overflow_local_resume,
exc_bridge_entry_guard_not_removed and list_append_write_barrier_gc since
9d2fff9, on ubuntu-24.04, macos-latest AND windows-latest (run
31140634730), and locally on macOS across all three backends.

Every one of those hosts observes bridges_compiled/guard_failures 5/647, 4/809
and 5/1345. Those are exactly the values that stood on main before 9d2fff9
(last written by #947 and #1059); 9d2fff9 recorded 6/686, 5/1009 and 6/1562,
which reproduce nowhere. The re-record was taken against a base whose behaviour
these fixtures no longer had, and the merge replayed it.

Re-recorded on dynasm, cranelift and wasm. The counters land back on the
pre-9d2fff92649 values; the `field_pos_*` fields 9d2fff9 added are kept.

Assisted-by: Claude
youknowone added a commit that referenced this pull request Aug 7, 2026
…es that have main red on every OS (#1099)

* jit: keep find_biggest_function's closed-frame result when the recorder is gone

pyjitpl.py:3562 reads `self.history.get_trace_position()` unconditionally, so
the `max_key` the closed-frame loop above produced always survives to the
return. pyre's recorder is an `Option` and the port spelled that read as
`self.tracing.as_ref()?`, which returns `None` for the whole function whenever
tracing has ended with an unmatched open entry still in
`portal_trace_positions`. Only the open frame is unmeasurable without a
recorder, so only its measurement is skipped now.

Not reachable from `blackhole_trace_too_long_slow`, which holds `self.tracing`
as `Some`; `find_biggest_function` is `pub`.

`find_biggest_function_keeps_a_closed_frame_when_the_recorder_is_gone` covers
it and fails with the `?` put back.

Also corrects blackhole_inlined_callee_local_after_escape_declined.py's second
description block, which still called `sys._getframe()` the residual after the
file's own header states it folds and the added `.f_locals` read is the force.

Assisted-by: Claude

* jit: emit sys._getframe's mark_as_escaped as a setfield, and carry the sized
frame's jitdriver out of find_biggest_function

vm.py:54 `f.mark_as_escaped()` is traced as an ordinary `setfield_gc` on the
flag. The constant-depth fold emitted it as a void CallN into a Rust helper
instead, which hides the update from the optimizer and its heap cache. Replaced
with the read/or/store the `tb_frame` fold in the same file already uses
(specialize.rs:2299-2313): getfield_gc_i(flags) + int_or(FLAG_ESCAPED) +
setfield_gc + heapcache_setfield_cached. `jit_frame_mark_as_escaped` is deleted.

pyjitpl.py:3575 returns `max_jdsd, max_key`, and pyjitpl.py:2821-2824 uses both
-- the disable goes through the OWNING driver's warmstate and that driver is
what `aborted_tracing_jitdriver` stores. The port dropped the jd_no its own log
entries already carry and hardcoded driver 0. It now returns
`Option<(usize, u64)>` and the caller stores the index it was given. pyre keeps
one WarmEnterState on the MetaInterp rather than one per JitDriverStaticData, so
`disable_noninlinable_function` still lands on that single state; the comment
names it.

No recorded counter moves on dynasm, cranelift or wasm.

Assisted-by: Claude

* bench: restore the three jit-stats baselines #1063 replaced with values no host
produces

`pyre/check.py` has been red on main for binary_int_overflow_local_resume,
exc_bridge_entry_guard_not_removed and list_append_write_barrier_gc since
9d2fff9, on ubuntu-24.04, macos-latest AND windows-latest (run
31140634730), and locally on macOS across all three backends.

Every one of those hosts observes bridges_compiled/guard_failures 5/647, 4/809
and 5/1345. Those are exactly the values that stood on main before 9d2fff9
(last written by #947 and #1059); 9d2fff9 recorded 6/686, 5/1009 and 6/1562,
which reproduce nowhere. The re-record was taken against a base whose behaviour
these fixtures no longer had, and the merge replayed it.

Re-recorded on dynasm, cranelift and wasm. The counters land back on the
pre-9d2fff92649 values; the `field_pos_*` fields 9d2fff9 added are kept.

Assisted-by: Claude

* jit: arm the deferred escape-flush undo when only the locals region flushed

`flush_active_frame_escape`'s force arm has three outcomes. A committed full
flush publishes a resume pc into `COMMITTED_FRAME_ESCAPE_PC`; an all-or-nothing
decline discards the undo capture; the third -- the full flush declines and
`flush_locals_region_to_frame` writes slots `0..nlocals` on their own -- did
neither.

That leg claims no resume pc, so `take_committed_frame_escape_pc` yields
nothing and the walk-end block gated on it is skipped in its entirety,
including the `restore_escape_flush_undo()` in its `else`. The capture stays
armed, `LiveLastInstrGuard::drop` reads an armed capture as a flush owning the
frame and declines to put `last_instr` back, and the legacy replay re-enters
one opcode past the call on an operand stack no flush wrote: `value-stack
underflow: depth=N base=N`, a JIT-only panic with no program output.

`mark_escape_flush_undo_pending()` routes the leg to the walk-end deferred
restore, which is already conditioned on no continuation having claimed the
flushed frame -- so where the walk goes on to adopt a blackhole image the
request is consumed without restoring and the adoption keeps the frame it
claimed.

Restoring earlier is not equivalent: making `LiveLastInstrGuard::drop` test the
commit instead removes the crash and returns a stale caller line, because the
walk goes on after the residual and nothing else advances `last_instr`.

`bench/synth/handler_tb_frame_locals_after_declined_flush.py` reaches the leg:
`'i' in tb.tb_frame.f_locals` forces the frame mid-expression, with the
`seen.add` receiver and its bound method live below the value being computed.

A/B on the cranelift binary that reproduced it: 10/10 panics without the
change, 0/10 with it, output `[True]` matching `PYRE_NO_JIT=1`.

Assisted-by: Claude

* bench: survey a caller's f_lineno and f_lasti from two call sites

A callee reading its caller's frame through `sys._getframe(1)` had no coverage
of the resume coordinate: `bench/synth` holds ten `_getframe(1)` fixtures, one
`f_lineno` fixture (a traceback frame) and no `f_lasti` fixture at all. Both
fields resolve off `last_instr`, which compiled code does not store per opcode,
so the value only reaches the frame if the force publishes it.

Two call sites are what make that observable. One holds the caller's coordinate
constant by construction, so a frozen read is indistinguishable from a live
one. Surveying every iteration into a set rather than sampling the last one is
the other half: the pre-compile iterations are correct, so a miss appears as a
changed row count.

`f_lasti` is a bytecode offset and so is not comparable against the pypy
oracle; only its discrimination is printed. `f_lineno` is compared directly,
relative to `co_firstlineno`.

Measured by putting a defect back in: with the `flushed` test dropped from
`LiveLastInstrGuard::drop`, so the guard restores at the residual's return
instead of at walk end, the fixture reports

    ([(0, 3), (0, 8), (1, 3), (1, 6)], [0, 0, 1, 1], 3)

against its

    ([(0, 8), (1, 6)], [0, 1], 2)

-- the pre-call coordinate appears alongside the call-site one on both legs.
cpython, pypy, `PYRE_NO_JIT=1`, dynasm, cranelift and wasm all print the
latter.

The walk-end epilogue gains the negative result measured while looking for a
counter to gate the same defect: every walk reaching that point on this fixture
reports `armed=false fb=true`, so a leak counter conditioned on the three
adoption flags being false reads 0 whether or not the force arm arms its
deferred restore.

Assisted-by: Claude

* check.py: fail the build on a stale LLBC instead of measuring through it

`pyre-jit-trace/build.rs` compares each `build/llbc/*.ullbc` against what its
crate's sources hash to now and reports a mismatch as `cargo::warning`, which
cargo replays only when it re-runs the build script -- so a run whose crates
were cached prints nothing at all. Every number check.py produces is read out
of a binary whose field offsets come from those artefacts.

Measured on this tree: four measurement runs -- a three-backend gate, two A/B
arms and a base control -- carried the mismatch, and the string `LLBC STALE`
appears in none of their logs, while `cargo check -p pyrex` on the same tree
printed it for all three crates. check.py only ever tested for the artefacts
being missing.

It now exports `PYRE_LLBC_STRICT=1` before every backend build, the promotion
build.rs documents for callers that want a gate, and names staleness in the
build-failure diagnostics beside the missing-artefact branch. The cost is that
a rebase which moves the LLBC crates stops the next check.py until a
re-extraction; `PYRE_LLBC_SKIP_FINGERPRINT_CHECK=1` still opts out for an A/B
whose only changed crate contributes no field offsets.

First use found one: the wasm jit-stats fall on
`exception_reused_object_tb_not_doubled` that four arms reproduced was an
artefact of the stale artefacts, and the bench passes on all three backends
after a re-extraction with nothing re-recorded.

Assisted-by: Claude
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant