-
Notifications
You must be signed in to change notification settings - Fork 30
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
Visual output of Alias Analysis #581
Conversation
I haven't yet checked the code, but some comments from trying to use this.
|
I agree with the point of merging events of different threads with the same line of code (it looks much easier to read). I haven't thought about all the properties of the graph, but if the important aliasing edges are transitive, then a transitive reduction + merging of SCCs will help a lot without losing any information at all. Also, how come you can construct this graph before running the core algorithm? Is the graph imprecise because you do it early? |
The figures look better now. However, avoiding events from different threads, but same line of code, seems not to be implemented yet, which make large figures (like qspinlock attached) still unreadable. |
@xeren It seems |
The prior version of the graph had more emphasis on the internals of the analysis: What variables exist and how they interact.
|
dartagnan/src/main/java/com/dat3m/dartagnan/configuration/OptionNames.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AliasAnalysis.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AliasAnalysis.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AliasAnalysis.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AliasAnalysis.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AliasAnalysis.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AliasAnalysis.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/FieldSensitiveAndersen.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/utils/visualization/Graphviz.java
Outdated
Show resolved
Hide resolved
LGTM. @xeren can you rebase so I can merge? |
Adds the option
program.analysis.printAliasGraph
for specifying a file to store a graphviz representation of theFieldSensitiveAndersen
analysis.