Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lazy cycle detection #676

Merged
merged 13 commits into from
May 23, 2024
Merged

Conversation

xeren
Copy link
Collaborator

@xeren xeren commented May 16, 2024

This PR replaces the transitive-closure-based approach in InclusionBasedPointerAnalysis with one based on Lazy Cycle Detection by Hardekopf & Lin: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code.

@ThomasHaas
Copy link
Collaborator

ThomasHaas commented May 16, 2024

FYI, the error that refinement throws suggests that the may-alias relation is too small.
Indeed, for EBR the number of rf-edges went from roughly 19k down to 6k in this PR.

EDIT: Unfortunately, I think some changes that I made to the refinement reasoning causes refinement to not properly report where the aliasing problem occurs.

xeren added 2 commits May 22, 2024 18:16
Add final specifier to local variables
Outline getIncluderSet(Variable)
Outline getAllCyclicPaths(IncludeEdge,Variable)
Copy link
Collaborator

@ThomasHaas ThomasHaas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hernanponcedeleon hernanponcedeleon merged commit 5689002 into development May 23, 2024
1 check passed
@hernanponcedeleon hernanponcedeleon deleted the alias-live-cycle-detection branch May 23, 2024 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants