zAttribSys: 100% match#51
Open
JohnDeved wants to merge 87 commits intodbalatoni13:devfrom
Open
Conversation
- decomp-context.py: scope source output to function line range instead of full file; add Ghidra error diagnostics with stderr reporting and --ghidra-check flag - tools/find-symbol.py: new CLI symbol finder to replace clangd workspace/symbol for checking existing definitions before declaring new types - refiner/SKILL.md: new skill for resolving stubborn instruction mismatches with systematic lateral strategies - AGENTS.md: document new tools, expand Matching Tips with branch/stack/vtable/register/inline patterns, add Discovered Matching Patterns section with entry template - lookup/SKILL.md: replace clangd instructions with find-symbol.py - scaffold/SKILL.md: fix typos, replace clangd reference, add jumbo unit identification guidance - execute/SKILL.md: fix section numbering gap (1a/1c -> 1a/1b), link skill files in agent type list - implement/SKILL.md: replace cat command with Read tool guidance
Report for SLES-53558-A124 (ef943a3 - 915e476)📈 Matched code: 8.13% (+0.02%, +616 bytes) ✅ 4 new matches
📈 6 improvements in unmatched items
📉 2 regressions in unmatched items
Report for GOWE69 (ef943a3 - 915e476)📈 Matched code: 14.09% (+0.07%, +2772 bytes) ✅ 8 new matches
📈 10 improvements in unmatched items
📉 3 regressions in unmatched items
Report for EUROPEGERMILESTONE (ef943a3 - 915e476)📉 2 regressions in unmatched items
|
Key changes: - VecHashMap: struct, unsigned int members, private data, Clear() inlined into dtor - CollectionHashMap: struct, out-of-line ctor+dtor matching DWARF method order - Added Class::Reserve inline, GetTableNodeSize through mCollections - Node: struct, removed operator new, unsigned int types throughout - Moved GetNextValidIndex/GetKeyAtIndex to VecHashMap base - AttribHashMap: restructured to match DWARF layout NON_MATCHING (r6/r7 register swap, 300+ experiments exhausted): - Class::RemoveCollection: 98.6% - Database::RemoveClass: 98.5% Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a Discovered Matching Patterns note for the stable r6/r7 register-allocation tie-break seen in zAttribSys RemoveCollection and RemoveClass so future matching passes do not repeat 300+ exhausted source-level experiments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore the pre-merge VecHashMap64 condition form after syncing with origin/dev. The merged condition regressed zAttribSys from 99.9% to 99.6%; this puts the translation unit back at the verified 99.9% baseline. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Conflicts: # .github/skills/execute/SKILL.md # .github/skills/implement/SKILL.md # AGENTS.md # tools/build-unit.py # tools/share_worktree_assets.py
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refine the late VecHashMap remove path in zAttribSys. - write Node::Get() as a ternary to drop the stray RemoveCollection DWARF mismatch - rewrite the second UpdateSearchLength loop header as maxSearch > searchLen to make RemoveCollection DWARF-exact and raise the unit text floor Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Teach dwarf1_subroutine_tree to parse original params and locals from functions.nothpp when --show-non-subroutine is enabled so deep original-vs-rebuilt comparisons are meaningful. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Document the need to use --show-non-subroutine for overload-heavy DWARF checks and note that concrete VecHashMap member specializations are a valid ProDG lane when dependent names are expanded. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
6f46fc6 to
d282bc0
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
devVecHashMap64.hpost-merge regression that dropped the TU from99.9%to99.6%AGENTS.mdso future agents do not repeat the same 300+ exhausted experimentsKey changes
ClassPrivate::CollectionHashMapconstructor out of line so the DWARF/template-instantiation order matches the originalVecHashMaplayout and helper placement with DWARF, includingunsigned inttable size/count fieldsClass::Reserve()and routeClass::GetTableNodeSize()throughmCollectionsNON_MATCHINGnotes to the two remaining near-match functionsDiscovered Matching Patternsentry for the sharedr6/r7register-allocation tie-break dead endVecHashMap64.hcondition after syncing withdevValidation
rm -f build/GOWE69/src/Speed/Indep/SourceLists/zAttribSys.o && ninja build/GOWE69/src/Speed/Indep/SourceLists/zAttribSys.opython tools/decomp-status.py --unit main/Speed/Indep/SourceLists/zAttribSyspython tools/decomp-diff.py -u main/Speed/Indep/SourceLists/zAttribSys -s nonmatching -t functionCurrent status
.text:99.9%(179/196functions)Attrib::Class::RemoveCollection(Attrib::Collection *)—98.6%Attrib::Database::RemoveClass(Attrib::Class const *)—98.5%Notes
r6/r7register-allocation tie-break inside inlinedVecHashMap::FindIndex