The Wayback Machine - https://web.archive.org/web/20211003213631/https://github.com/github/codeql/pull/6790
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

Dataflow: Force high precision of certain Contents. #6790

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

@aschackmull
Copy link
Contributor

@aschackmull aschackmull commented Oct 1, 2021

The adaptive dataflow accesspath precision will scale down the precision at which certain accesspath are tracked based on an over-approximation of the tuple-count cost (and fan-out) of a more precise tracking. This cost estimation is essentially done by multiplying the accesspath fan-out with the number of relevant dataflow nodes, but for certain ubiquitous Contents this approximation can be too pessimistic - if the fan-out of a particular accesspath head (i.e. Content) involves a number of tails, which are individually constrained to isolated scc's of the flow graph then the cost approximation becomes much larger than the actual cost. In addition, it has been observed that correctly tracking the contents of, say, Object[] in Java is quite important for removing FP flow. In particular, this change reduces the number of results of certain queries on jdk11 with more than 90% (all of the removed results were FPs due to lost precision in Object[]).

@aschackmull
Copy link
Contributor Author

@aschackmull aschackmull commented Oct 1, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant