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

Feature: Improved source tracing and visualization of static analysis results #544

Open
ThomasHaas opened this issue Oct 27, 2023 · 0 comments

Comments

@ThomasHaas
Copy link
Collaborator

SImilar to #534, we should have better ways to visualize (and hence understand) our own internal analyses results.
By internal analysis results, I mean things like aliasing relationships, call/control-flow graphs, data-dependency graphs etc.
To make these results easily accessible/readable, we should relate them to the source code instead of our own internal representation. This would also allow us to easily see if there are obvious imprecisions in the analyses.

To do this, we need to keep more LLVM metadata in addition to just the source location. For example, we should keep source-language types, names of local variables, field access expressions (e.g., r = load(ptr) might have been a int r = struct->x), etc.

I think just having the expression for all loads/stores in the source language would already be tremendeously useful to compactly visualize the alias analysis results. Say we find load(ptr1) and load(ptr2) to be possibly aliasing, but in the source language we see that the corresponding expressions are struct->X and struct->Y, then we immediately know that we were imprecise.

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

No branches or pull requests

1 participant