VSFS - SVF-tools/SVF GitHub Wiki

Versioned Staged Flow-Sensitive Points-To Analysis

Usage

To use VSFS, use the -vfspta option. Performing versioning is not currently supported on the optimised SVFG so the value of the -opt-svfg option must be false.

$ wpa -vfspta -opt-svfg=false program.bc

The versioning phase is multi-threaded. To choose the number of threads, use the -versioning-threads option (default 1; single-threaded). To use 4 threads, for example,

$ wpa -vfspta -opt-svfg=false -versioning-threads=4 program.bc

By default, SVF uses CPU time to time analyses. When using multiple threads this can be problematic depending on desired behaviour. For a better representation of actual time taken, use wall time through the -clock-type option.

$ wpa -vfspta -opt-svfg=false -versioning-threads=4 -clock-type=wall program.bc

For more options to improve flow-sensitive analysis performance, see the page on hash consed points-to sets and the page on object clustering.