-
Notifications
You must be signed in to change notification settings - Fork 66
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
Simplified and more basic fixpoint iteration for UnreachableEOGPass
#1811
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files
☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally the changes look adequate, but I noticed that some implementation may have missed in the old and new version.
when (val currentNode = currentEdge.end) { | ||
is IfStatement -> { | ||
handleIfStatement(currentEdge, currentNode, currentState) | ||
newState = handleIfStatement(lattice, currentEdge, currentNode, newState) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While looking through the code I noticed that we have this explicit handlers for IfStatement
and WhileStatement
, but not for the other branching Constructs. is that intentional? Are they not Needed for for, foreach, do and switch?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll double-check if some of these statements can be added. I think that some of these do not exist in the current implementation because the ValueEvaluator
is still limited (this affects the foreach) and because I wasn't sure how to implement an appropriate comparison (this is the case for the switch).
This PR adapts the
UnreachableEOGPass
to the new fixpoint iteration implementation