Sifa Tool
This page documents the sifa verifier front-end in tools/verifier/sifa/.
Binary: sifa
Source: tools/verifier/sifa/sifa.cpp
Overview
sifa analyzes a target function or block using the Sifa framework. It can
run in a lightweight reachability mode, a native abstract-domain mode, or a
SymAbs-backed SMT mode.
Basic usage
./build/bin/sifa input.bc
./build/bin/sifa input.bc --function=foo
./build/bin/sifa input.bc --function=foo --block=loop.header
./build/bin/sifa input.bc --symabs --abstract-domain=Octagon
Important options
--function=<name>selects the function to analyze. The default ismainwhen available.--block=<label>analyzes to a named block instead of the function return.--abstract-domain=Interval|Octagon|bothselects the abstract domain.--symabsenables SMT-backed symbolic abstraction.--represent-allincludes unnamed SSA values in the printed invariant.--widening-delayand--widening-frequencytune widening in SymAbs mode.--reachabilityonly reports whether the target is reachable.--list-functionsand--list-blocksinspect available analysis targets.--log-level=none|error|warning|info|progress|debug|tracecontrols diagnostic output.
See also
See Sifa for the framework-level overview.