- Use SVF as an external lib for your own project (Contributed by Hongxu Chen).
- SVF now supports LLVM-7.0.0.
- SVF now supports Docker. Try SVF in Docker!
- SVF now supports LLVM-6.0.0 (Contributed by Jack Anthony).
- SVF now supports LLVM-4.0.0 (Contributed by Jared Carlson. Thank Jared and Will for their in-depth discussions about updating SVF!)
- SVF now supports analysis for C++ programs.
SVF is a static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs. SVF allows value-flow construction and pointer analysis to be performed iteratively, thereby providing increasingly improved precision for both.
SVF accepts the points-to information generated by any pointer analysis (e.g., Andersen’s analysis) and constructs an interprocedural memory SSA form so that the def-use chains of both top-level and address-taken variables are captured. SVF is implemented on top of an industry-strength compiler LLVM (version 6.0.0). SVF contains a third party software package CUDD-2.5.0 (Binary Decision Diagrams (BDDs)), which is used to encode path conditions.
About SVF | Setup Guide | User Guide | Developer Guide |
---|---|---|---|
Introducing SVF -- what it does and how we design it | A step by step setup guide to build SVF | Command-line options to run SVF, get analysis outputs, and test SVF with an example or PTABen | Detailed technical documentation and how to write your own analyses in SVF or use SVF as a lib for your tool |
We release SVF source code in the hope of benefiting others. You are kindly asked to acknowledge usage of the tool by citing some of our publications listed http://svf-tools.github.io/SVF, especially the following two:
@inproceedings{sui2016svf,
title={SVF: interprocedural static value-flow analysis in LLVM},
author={Sui, Yulei and Xue, Jingling},
booktitle={Proceedings of the 25th international conference on compiler construction},
pages={265--266},
year={2016},
organization={ACM}
}
@article{sui2014detecting,
title={Detecting memory leaks statically with full-sparse value-flow analysis},
author={Sui, Yulei and Ye, Ding and Xue, Jingling},
journal={IEEE Transactions on Software Engineering},
volume={40},
number={2},
pages={107--122},
year={2014},
publisher={IEEE}
}