Union-Find Alias Analyses#820
Open
fabianbs96 wants to merge 84 commits intosecure-software-engineering:developmentfrom
Open
Union-Find Alias Analyses#820fabianbs96 wants to merge 84 commits intosecure-software-engineering:developmentfrom
fabianbs96 wants to merge 84 commits intosecure-software-engineering:developmentfrom
Conversation
…VM-based UnionFindAA compile
Documents edge types, concepts, strategy combinators, analysis variants (BasicUnionFindAA, CallingContextSens, IndirectionSens, BottomupUnionFindAA), LLVM adapters, and utility types (RawAliasSet, UnionFind, ValueCompressor, TypedArray, CallingContextConstructor). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…_iterator), operator==, max_size - Add iterator-range constructor with O(1) reserve for random-access iterators - Add initializer_list constructor (delegating to range ctor) and assignment operator, both accepting any V constructible to ValueT to avoid unnecessary copies - Replace erase(iterator) with erase(const_iterator) per STL convention - Add operator== hidden friend: compares IsSet bitsets first, then values directly via slot() without find(), for lower constant vs. a naive lookup-per-element - Add max_size() capped at INT_MAX (llvm::BitVector internal limit) - Add missing type aliases: difference_type, reference, const_reference, pointer, const_pointer - Add #include <limits> and <initializer_list> Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Adds multiple new Steensgaard-style alias analyses, focusing on high performance and recall.
Main additions:
LLVMUnionFindAliasSet: Similar toLLVMAliasSet, but featuring the new analysesLLVMUnionFindAliasIterator: Compatible withLLVMAliasIteratorRefcompute[...]SensUnionFindAA(): Functions to invoke the new analyses directly, without going throughLLVMUnionFindAliasSet.LLVMPAGBuilder: Utility to build pointer-assignment graphs with different strategies that can be plugged-in. This class may be reused for other analyses as well.The currently implemented POC analyses are integrated into
phasar-clias--alias-analysis=union-findand the following analysis variants:As initial estimation on the results quality, we ran the new analyses on SVF's PTABen test suite. You can find details here.