Skip to content
Yulei Sui edited this page Jul 13, 2015 · 18 revisions

SVF Design

The framework of SVF is shown in the following figure. The source code of a program is first compiled into bit-code files using clang and then merged together using LLVM Gold Plugin at link time stage (LTO) to produce a whole-program bc file. Then interprocedural pointer analysis is performed to produce points-to information for constructing memory SSA form so that def-use chains are identified for both top and address- taken variables. The generated value-flow information can be used to support various applications (e.g., detecting memory leaks, null pointer detection). The value-flows can also be used to bootstrap more precise pointer analysis for refining value-flows in an iterative manner. framework