-
Notifications
You must be signed in to change notification settings - Fork 19
jit: three witnessed wrong-code fixes, builtin-subclass mapdict layouts, and a measured FOR_ITER gate widening #1103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
50 commits
Select commit
Hold shift + click to select a range
ccd645a
list: give the unused typed strategy an empty array, not a block
youknowone 4747bfa
optimizeopt: answer an unwritten field of a virtual with its typed zero
youknowone f4a0955
mapdict: keep builtin storage on user subclasses
youknowone bc9e9e0
jit: record integer zero-divisor raising arms
youknowone 04a9964
mapdict: harden builtin subclass carriers
youknowone 2bbfd4f
jit: initialize inline allocation scalar fields
youknowone 46999ae
jit: record range zero-step raising arms
youknowone 48af5b3
jit: record float zero-divisor raising arms
youknowone 639da0e
jit: record bigint zero-divisor raising arms
youknowone ff85876
jit: record negative bigint shift raising arms
youknowone fcc4663
jit: scope FOR_ITER safety to escaping range loops
youknowone 7b1f865
bench: re-record seven wasm jitstats baselines on the rebased base
youknowone a88c2c5
jit: diagnose FOR_ITER gate opcode declines
youknowone 3dd1ae0
jit: gate FOR_ITER decline census allocation
youknowone cec1dea
jit: gate FOR_ITER decline census collection
youknowone 2b05fbb
jit: guard numeric binary specialization classes
youknowone df70b3f
jit: retain context on specialized builtin raises
youknowone ef21e95
jit: skip redundant numeric class guards
youknowone c99178d
test: drive the numeric subclass fixture through the specialized pc
youknowone 5edb6b6
Grow FOR_ITER regions through handler rejoins
youknowone 4bfa882
Tighten escaping range append recognition
youknowone a433dac
Update range constructor loop jitstats
youknowone 58768e2
jit: admit LIST_EXTEND in FOR_ITER bodies
youknowone 1a57255
jit: admit call-bearing LIST_APPEND bodies in the FOR_ITER gate
youknowone 1ef061f
jit: census in-flight FOR_ITER delivery outcomes
youknowone ff25238
bench: re-record nineteen jit-stats baselines
youknowone 4f8b4ac
Trace traceback escape marking in exception attribute fold
youknowone e388ed7
Trace fresh container allocations in FOR_ITER callees
youknowone 6d48af8
Admit tuple copies from exact lists during replay
youknowone e4bc476
Identify traceback walk bridge training
youknowone e9805e6
bench: add a synthetic fixture for the subscript inline's index operand
youknowone e663ee4
bench: re-record the wasm pickle terminal-raise baseline
youknowone 918255b
jit: pair the vable static shadow write with a heap write-back
youknowone f4369cd
docs: list the two FOR_ITER gate diagnostics in gate-triage
youknowone 0034ef3
bench: re-record ten jit-stats baselines after the rebase
youknowone da2ae41
jit: follow the InflightForiterBody field rename in the census
youknowone 80860af
mapdict: split the layout predicate from the storage predicate
youknowone 1fd5db4
_structseq: re-read the pinned class after the tuple allocation
youknowone d910ee2
jit: gate the in-flight FOR_ITER census key lookup on the census
youknowone c617cb3
jit: correct the exception descr group note on w_context
youknowone d2cc283
test: scan the loop-region fixture in two passes
youknowone 1ccd1f7
test: cover synchronize_virtualizable_static
youknowone 347844e
majit: exclude the identity slot from the static write-back bound
youknowone 195f713
jit: read PYRE_FOR_ITER_GATE_DIAG through one accessor
youknowone 311a7d8
jit: admit builtin subclass carriers in the mapdict storage helpers
youknowone 4cd76f2
Revert "jit: admit call-bearing LIST_APPEND bodies in the FOR_ITER gate"
youknowone 7243e57
majit: drop the narrowed virtualizable static synchronizer
youknowone f828b0c
bench: restore five jit-stats baselines the reverted gate had moved
youknowone 51e9218
bench: restore the cranelift jit-stats baselines to match
youknowone 1d84385
bench: restore the wasm jit-stats baselines to match
youknowone File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 14 additions & 0 deletions
14
pyre/bench/synth/foriter_inlined_callee_build_list.cranelift.jitstats
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| bridges_compiled=0 | ||
| descr_set_absent=0 | ||
| descr_set_ambiguous=0 | ||
| descr_set_stale_absent=0 | ||
| fbw_blackhole_adopted_multi_frame=0 | ||
| fbw_blackhole_adopted_single_frame=0 | ||
| fbw_rolled_back_with_effects=0 | ||
| fbw_store_journal_rollback_failed=0 | ||
| field_pos_attached_misplaced=0 | ||
| field_pos_spec_misplaced=0 | ||
| guard_failures=1 | ||
| internal_compile_panics=0 | ||
| loops_aborted=0 | ||
| loops_compiled=1 |
14 changes: 14 additions & 0 deletions
14
pyre/bench/synth/foriter_inlined_callee_build_list.dynasm.jitstats
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| bridges_compiled=0 | ||
| descr_set_absent=0 | ||
| descr_set_ambiguous=0 | ||
| descr_set_stale_absent=0 | ||
| fbw_blackhole_adopted_multi_frame=0 | ||
| fbw_blackhole_adopted_single_frame=0 | ||
| fbw_rolled_back_with_effects=0 | ||
| fbw_store_journal_rollback_failed=0 | ||
| field_pos_attached_misplaced=0 | ||
| field_pos_spec_misplaced=0 | ||
| guard_failures=1 | ||
| internal_compile_panics=0 | ||
| loops_aborted=0 | ||
| loops_compiled=1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| # A FOR_ITER trace must keep compiling when an inlined callee allocates a | ||
| # fresh list and copies it into a tuple. Both fresh allocations are replay-safe | ||
| # and have no reason to abort the caller's loop trace. | ||
|
|
||
|
|
||
| def chain(item): | ||
| out = [] | ||
| return len(tuple(out)) + (item - item) | ||
|
|
||
|
|
||
| def drive(n): | ||
| last = -1 | ||
| for i in range(n): | ||
| last = chain(i) | ||
| return last | ||
|
|
||
|
|
||
| print(drive(20000)) |
14 changes: 14 additions & 0 deletions
14
pyre/bench/synth/foriter_inlined_callee_build_list.wasm.jitstats
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| bridges_compiled=0 | ||
| descr_set_absent=0 | ||
| descr_set_ambiguous=0 | ||
| descr_set_stale_absent=0 | ||
| fbw_blackhole_adopted_multi_frame=0 | ||
| fbw_blackhole_adopted_single_frame=0 | ||
| fbw_rolled_back_with_effects=0 | ||
| fbw_store_journal_rollback_failed=0 | ||
| field_pos_attached_misplaced=0 | ||
| field_pos_spec_misplaced=0 | ||
| guard_failures=1 | ||
| internal_compile_panics=0 | ||
| loops_aborted=0 | ||
| loops_compiled=1 |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Assert the typed zero value, not only operation removal.
result.is_empty()confirms only that the operations were removed. It does not confirm that the result containsValue::Int(0),Value::Ref(GcRef::NULL), orValue::Float(0.0). A regression that drops the result or assigns the wrong value type would still pass. Expose the forwarded value in the test helper and assert the expected value for each opcode.🤖 Prompt for AI Agents