Comments (7)
Hi Miguel,
The demand-driven analysis (SUPA) is yet to be merged to SVF. We hope we can finish merging in the next few months.
For all other analyses, either they are in the repo, or not implemented.
Thanks,
Yulei
from svf.
Thanks for your quick response!
While it is being merged, is the version found here https://github.com/yuleisui/yuleisui.github.io/blob/master/supa/supa.zip working?
from svf.
Yes, it works on an older version of SVF (i.e., LLVM-4.0.0).
from svf.
Hi Yulei,
I've been experimenting with SVF and had a few questions.
I'm trying to compare the SVFG graphs between Context-sensitive DDA (ie. ./build/bin/dvf -cxt -dump-svfg cs0.ll
) & the flow-sensitive WPA (ie. ./build/bin/wpa -ander -dump-svfg cs0.ll
). The MUSTALIAS
& NOALIAS
asserts are correct as expected. However, I am not seeing any difference in the graph's with the exception of the yellow FormalIn nodes.
I would have expected these two graphs to be different. Am I missing something?
from svf.
Hi Miguel,
The two analyses should produce the same SVFG. DDA (SUPA) decides whether a value-flow (an SVFG edge) is infeasible or not via on-demand graph traversal.
Note that DDA (SUPA) only refines the value-flows rather than deleting SVFG's edges to compute precise points-to results. This is a design choice to make SVFG consistent, but the analysis to will be gradually refined.
from svf.
Thank you for the clarification. In the case of DDA (SUPA) is it possible to output the SVFG it computes at the end of its refinement stage? I want to be able to query the graph to diff against a less sensitive points-to analysis.
from svf.
Miguel,
Good question. Unfortunately, for a query-based context-sensitive demand-driven analysis, this does not make too much sense.
For example, if we want to remove a value-flow permanently from SVFG, this value-flow has to be spurious under every calling context. Otherwise, simply removing it will cause unsound results.
However, validating a particular value-flow under all context is almost impossible for a demand-driven analysis since most of the time we just issue some but not exhaustively all queries for all pointers in a program.
Ideally, every value-flow should have a label recording, under which contexts, the value-flow is legitimate or spurious. Again, this is impractical as mentioned as we can't enumerate all possible queries of every pointer.
You may wish to just query a pointer's value to get the precise points-to results for answering a particular query. We believe our current way is a nice solution without constantly updating or invalidating SVFG.
from svf.
Related Issues (20)
- How to show more attributes on graphs? HOT 2
- How to create a CDG with SVF? HOT 25
- I encountered a segmentation fault.
- Failed to Extract Bc Files for Spec2006 HOT 1
- Hello, is there any mechanism in SVF to update TCT?
- How to run SVF on a C++ project? HOT 9
- dylib path issue on macOS
- How to maintain structure field-sensitivity across functions (in C)?
- How to modify PAG/ICFG? HOT 2
- Question regarding different modes of wpa
- [SVF API] Delete ICFG Node/Edge / Create new abstract ICFG from ground?
- Faced a crash on saber HOT 7
- Get pointer type in absence of `getPtrElementType` HOT 2
- Failed when using `getLLVMValue()` on Value got from `IntraICFGNode->getInst()`
- Type inference failure for linked list HOT 1
- SVF::FlowSensitive analyze failed HOT 3
- Flow sensitive wpa misses alias of global pointer? HOT 7
- Same Node but with Different Source Loc in -vfspta Pointer Analysis HOT 3
- Querying WPAPass APIs using LLVM Value* and CallInst* HOT 4
- It seems PTA results of -sfrander have some pts-elements missing compared with -nander?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from svf.