You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make dependence graph merge() return true when abstract state changes
The dependency graph has special handling for function entry edges (in
transform()) where it merges the current state into the state of the return
location before entering the function. This may change the abstract state at the
return location. When later the function exit edge is handled, the merge() into
the return location may not change the state, thus merge() may not return true,
and thus the return location may not be inserted into the worklist of the
fixpoint computation when it should.
We introduce a flag has_changed that records whether the abstract state has
changed on the handling of the function entry edge. On the function return edge
later, merge() checks the flag to know whether it needs to return true.
0 commit comments