[AndersenAgnostic] Backport fixes and expanded statistics for Andersen analysis #652
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.
During work on the
andersen-no-flags
branch, some other changes were made as I discovered issues or wanted more statistics:ObserverWorklist
is now called theWorkSet
instead, as that name describes its new job (an unordered worklist) better. This is likely closer to what has been done by Pearce07, but it still does not make it the best worklist iteration order.JLM_ANDERSEN_TEST_ALL_CONFIGS
environment variable take an integer controlling the amount of iterations each config should be used.The bulk of this PR is related to getting more statistics:
PointsToGraph
class to count the number of edges, as well as the number of pointer-pointee relations, sinceRegisterNode
s can represent multiple registers at once.CanPoint()
toPointerObject
s to formalize the existence of memory objects whose points-to sets we do not track (such asint a
). This makes the statistics more useful and comparable, as well as removing potentially tons of edges in thePointsToGraph
going out from these memory objects.This PR ended up being a bit larger than I wanted, let me know if you want it split up