diff --git a/pyre/bench/synth/exception_bridge_traceback_head.dynasm.jitstats b/pyre/bench/synth/exception_bridge_traceback_head.dynasm.jitstats index 8b3e5a19afe..9a2a8a7e2bf 100644 --- a/pyre/bench/synth/exception_bridge_traceback_head.dynasm.jitstats +++ b/pyre/bench/synth/exception_bridge_traceback_head.dynasm.jitstats @@ -1,8 +1,8 @@ -bridges_compiled=6 +bridges_compiled=4 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 -guard_failures=1203 +guard_failures=802 internal_compile_panics=0 -loops_aborted=1 +loops_aborted=0 loops_compiled=2 diff --git a/pyre/bench/synth/exception_escape_caller_frame_tb_node.dynasm.jitstats b/pyre/bench/synth/exception_escape_caller_frame_tb_node.dynasm.jitstats index 8b62b0785a8..b7bfc852ab5 100644 --- a/pyre/bench/synth/exception_escape_caller_frame_tb_node.dynasm.jitstats +++ b/pyre/bench/synth/exception_escape_caller_frame_tb_node.dynasm.jitstats @@ -2,7 +2,7 @@ bridges_compiled=0 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 -guard_failures=8 +guard_failures=5 internal_compile_panics=0 -loops_aborted=1 +loops_aborted=0 loops_compiled=8 diff --git a/pyre/bench/synth/exception_raise_caught_same_frame_tb.dynasm.jitstats b/pyre/bench/synth/exception_raise_caught_same_frame_tb.dynasm.jitstats index 7f60b210795..0b4eb77dae0 100644 --- a/pyre/bench/synth/exception_raise_caught_same_frame_tb.dynasm.jitstats +++ b/pyre/bench/synth/exception_raise_caught_same_frame_tb.dynasm.jitstats @@ -1,4 +1,4 @@ -bridges_compiled=2 +bridges_compiled=4 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 diff --git a/pyre/bench/synth/exception_residual_raise_caught_in_frame.dynasm.jitstats b/pyre/bench/synth/exception_residual_raise_caught_in_frame.dynasm.jitstats index 84bc0a873ae..1c1831fd561 100644 --- a/pyre/bench/synth/exception_residual_raise_caught_in_frame.dynasm.jitstats +++ b/pyre/bench/synth/exception_residual_raise_caught_in_frame.dynasm.jitstats @@ -1,4 +1,4 @@ -bridges_compiled=0 +bridges_compiled=1 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 diff --git a/pyre/bench/synth/exception_traceback_frame_lineno.dynasm.jitstats b/pyre/bench/synth/exception_traceback_frame_lineno.dynasm.jitstats index 4ecdbee8cee..d2b7b725d15 100644 --- a/pyre/bench/synth/exception_traceback_frame_lineno.dynasm.jitstats +++ b/pyre/bench/synth/exception_traceback_frame_lineno.dynasm.jitstats @@ -1,4 +1,4 @@ -bridges_compiled=3 +bridges_compiled=5 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 diff --git a/pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.dynasm.jitstats b/pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.dynasm.jitstats index 323dac98381..86c1dd01106 100644 --- a/pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.dynasm.jitstats +++ b/pyre/bench/synth/gc_bug_bridge_flavor_traceback_names.dynasm.jitstats @@ -1,8 +1,8 @@ -bridges_compiled=10 +bridges_compiled=7 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 -guard_failures=2018 +guard_failures=1655 internal_compile_panics=0 -loops_aborted=1 +loops_aborted=0 loops_compiled=4 diff --git a/pyre/bench/synth/list_length_hint_validate.dynasm.jitstats b/pyre/bench/synth/list_length_hint_validate.dynasm.jitstats index f7879840ea8..6a25cba05ef 100644 --- a/pyre/bench/synth/list_length_hint_validate.dynasm.jitstats +++ b/pyre/bench/synth/list_length_hint_validate.dynasm.jitstats @@ -1,8 +1,8 @@ -bridges_compiled=4 +bridges_compiled=0 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 -guard_failures=828 +guard_failures=1 internal_compile_panics=0 loops_aborted=10 loops_compiled=2 diff --git a/pyre/bench/synth/slots_class_var_conflict.dynasm.jitstats b/pyre/bench/synth/slots_class_var_conflict.dynasm.jitstats index 4d9c7e7deae..9905e7c3a4b 100644 --- a/pyre/bench/synth/slots_class_var_conflict.dynasm.jitstats +++ b/pyre/bench/synth/slots_class_var_conflict.dynasm.jitstats @@ -4,5 +4,5 @@ descr_set_ambiguous=0 descr_set_stale_absent=0 guard_failures=1 internal_compile_panics=0 -loops_aborted=5 -loops_compiled=3 +loops_aborted=0 +loops_compiled=5 diff --git a/pyre/check.py b/pyre/check.py index b14837fdcb3..12d8d893deb 100644 --- a/pyre/check.py +++ b/pyre/check.py @@ -676,9 +676,12 @@ def _jit_stats_change(saved, current): A field missing from either side reads as "0", so a baseline recorded before a counter existed still matches a run that reports it as 0, and adding an - invariant counter costs no re-record. The wasm [jit-stats] line reports only - the badness fields, so its baselines carry only those and stay equal on the - three it never prints.""" + invariant counter costs no re-record. The cost of that convenience is that a + field absent from BOTH sides compares equal forever: a backend whose + [jit-stats] line stops naming a counter disarms that counter's gate on every + one of its baselines, silently. Whenever a backend's line changes shape, + re-record its whole baseline surface rather than trusting the run that + follows.""" old_fields = _parse_jit_stats(saved) new_fields = _parse_jit_stats(current) changes = [