Repository navigation
[rocjitsu] Fixing Bad Merge from EXEC Tracking PR - #9847
Conversation
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
atgutier
left a comment
There was a problem hiding this comment.
Approving with comment:
[MINOR] /tmp/pr9847/head/emulation/rocjitsu/lib/python/amdisa/codegen/
_generator.py:8220 — The repaired ordinary split-instruction path lacks a
direct regression test
Reasoning: Removing the stale execute_registered_ =
register_exec_fn<...>() emission is correct, but no test exercises the
affected combination: ordinary instruction generation through gen_insts()
with split_execution_sources == true. Reintroducing the five deleted lines
would still pass the two tests currently asserting that
execute_registered_ is absent.
Evidence:
-
Gfx1250Profile is the only profile enabling split execution.
-
Ordinary constructors now obtain dense callback IDs through
_split_execute_expr() and selected_exec_fn(id). -
gen_execution_backend() builds the corresponding immutable callback
table. -
test_gfx1250_instruction_execution_backend_is_dense_and_scoped calls
only gen_execution_backend(). -
test_gfx1250_vopd_template_uses_dx9_zero_and_fma exercises the separate
bespoke VOPD generator. -
No amdisa test calls gen_insts().
-
The exact-head amdisa suite nevertheless passes, demonstrating that the
original regression path is currently outside test coverage.
Suggested fix: Add a focused Python test that generates one ordinary
gfx1250 instruction using gen_insts() or its smallest equivalent, then
verifies:
- the model constructor contains selected_exec_fn(0);
- the execution source contains the instruction’s execute_impl;
- neither output contains execute_registered_ nor register_exec_fn;
- optionally, the generated backend table places that instruction at the
same dense index.
The test should fail on base e92aa6e… and pass on head bc71280….
Confidence: high.
kuhar
left a comment
There was a problem hiding this comment.
LGTM as long as the CI returns green
|
The gcc job that is still failing might be fixed by: #9860 |
PR #7470 had a bad merge with PRs #8933 (intended to bring in register_exec_fn) and #9099 (intended to remove register_exec_fn) in _generator.py. Prior to PR #7470, develop didn't have this function and PR #7470 brought it back in when it shouldn't. Regeneration currently fails on develop, this fixes it. No changes to generated ISA.
Test Plan
Reran all rocjitsu tests
Test Result
All pass
Submission Checklist