Improve UnionFind Alias Analyses#838
Open
fabianbs96 wants to merge 12 commits into
Open
Conversation
…tGraph
- Model varargs: route extra pointer args through the callee's va_list
alloca via StorePOI edges (handleCallTarget).
- Fix constant GEP in handleOperand: only enqueue the pointer operand,
not integer index operands, avoiding spurious pointer merges.
- Remove dead isReturnVariable() branch from addDelayedEdges safety
fallback (return slots are always erased before that point).
- Enable field sensitivity for pointer parameters: extract
isAddressTakenImpl() from isAddressTakenVariable(), add
isAddressTakenArg() that bypasses the allocation-site guard, and use
it in handleGep so non-address-taken pointer args get GEP edges
instead of collapsing to their base.
- Filter return-slot ValueIds from BackwardView: add an optional
FilterFn predicate to consumeAAResults() on all UnionFindAA variants
and inject a !isReturnVariable() filter in computeUnionFindAARaw().
- Add doc comments clarifying intentional imprecision in
BasicUnionFindAA::onAddEdge and the K-slot constraint in
IndirectionSensUnionFindAA::onAddValue.
…alueCompressor-level
…le to ensure compilation for LLVM >=21
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.
Improve the quality of the pointer-assignment graph constructed by
LLVMPAGBuilderby leveraging LLVM'sMemorySSA.This, in turn, also improves the results of the alias analyses that are based on the LLVMPAGBuilder (currently: all union-find alias analyses.