Updated to work with most recent angr version#3
Open
jorik-utwente wants to merge 2 commits intosubwire:masterfrom
Open
Updated to work with most recent angr version#3jorik-utwente wants to merge 2 commits intosubwire:masterfrom
jorik-utwente wants to merge 2 commits intosubwire:masterfrom
Conversation
Chapoly1305
added a commit
to Chapoly1305/libmatch
that referenced
this pull request
Jan 11, 2026
Implement optimizations identified in optimization_review.md: - Issue subwire#1: Precompute block attributes in LMD during initialization Caches graph traversal results (O(V+E)) for O(1) lookup per FunctionDiff. Falls back gracefully for LMDs created before this optimization. - Issue #9: Compute bidirectional distance matrix once _get_bidirectional_closest_matches computes the distance matrix once and extracts closest matches for both directions (A→B and B→A). - Issue subwire#3: Build symbol address hash table in LMD Converts O(n) symbol_for_addr lookup to O(1) hash table lookup. - Issue #5: Change recursion_list to recursion_set Uses set for O(1) membership test and removal instead of O(n) list ops. - Issue subwire#2: Add block_similarity() caching Caches similarity results to avoid recomputation for same block pairs. - Issue #8: Fix _is_better_match() duplicate distance computation Computes distance once and reuses for both comparisons. Expected improvement: 35-50% reduction in Phase 2 processing time when using LMDs with precomputed block attributes.
Chapoly1305
added a commit
to Chapoly1305/libmatch
that referenced
this pull request
Jan 11, 2026
Implement optimizations identified in optimization_review.md: - Issue subwire#1: Precompute block attributes in LMD during initialization Caches graph traversal results (O(V+E)) for O(1) lookup per FunctionDiff. Falls back gracefully for LMDs created before this optimization. - Issue #9: Compute bidirectional distance matrix once _get_bidirectional_closest_matches computes the distance matrix once and extracts closest matches for both directions (A→B and B→A). - Issue subwire#3: Build symbol address hash table in LMD Converts O(n) symbol_for_addr lookup to O(1) hash table lookup. - Issue #5: Change recursion_list to recursion_set Uses set for O(1) membership test and removal instead of O(n) list ops. - Issue subwire#2: Add block_similarity() caching Caches similarity results to avoid recomputation for same block pairs. - Issue #8: Fix _is_better_match() duplicate distance computation Computes distance once and reuses for both comparisons. Expected improvement: 35-50% reduction in Phase 2 processing time when using LMDs with precomputed block attributes.
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.
Two small changes that fix the project to work with the most recent version of angr.