README.md

May 1, 2026 ยท View on GitHub

News

Documentation


SVF is a static value-flow analysis tool for LLVM-based languages. SVF (CC'16) is able to perform

  • AE (abstract execution): cross-domain execution (ICSE'24), recursion analysis (ECOOP'25) typestate analysis (FSE'24);
  • WPA (whole program analysis): field-sensitive (SAS'19), flow-sensitive (CGO'21, OOPSLA'21) analysis;
  • DDA (demand-driven analysis): flow-sensitive, context-sensitive points-to analysis (FSE'16, TSE'18);
  • MSSA (memory SSA form construction): memory regions, side-effects, SSA form (JSS'18);
  • SABER (memory error checking): memory leaks and double-frees (ISSTA'12, TSE'14, ICSE'18);
  • MTA (analysis of multithreaded programs): value-flows for multithreaded programs (CGO'16);
  • CFL (context-free-reachability analysis): standard CFL solver, graph and grammar (OOPSLA'22, PLDI'23);
  • SVFIR and MemoryModel (SVFIR): SVFIR, memory abstraction and points-to data structure (SAS'21);
  • Graphs: generating a variety of graphs, including call graph, ICFG, class hierarchy graph, constraint graph, value-flow graph for static analyses and code embedding (OOPSLA'20, TOSEM'21)

We release the SVF source code with the hope of benefiting the open-source community. You are kindly requested to acknowledge usage of the tool by referring to or citing relevant publications above.

SVF's doxygen document is available here.


About SVFSetup GuideUser GuideDeveloper Guide
AboutSetupUserDeveloper
Introducing SVF -- what it does and how we design itA step by step setup guide to build SVFCommand-line options to run SVF, get analysis outputs, and test SVF with an example or PTABenDetailed technical documentation and how to write your own analyses in SVF or use SVF as a lib for your tool, and the course on SVF