GVFG
The Guarded Value-Flow Graph (GVFG) extends value-flow reasoning with explicit guards and block conditions.
Headers: include/IR/GVFG/
Implementation: lib/IR/GVFG/
Overview
GVFG models value propagation while preserving predicate information that constrains whether a flow edge is feasible. This is useful for analyses that need more path sensitivity than a plain value-flow graph but do not want to enumerate full paths.
Main components
GuardedValueFlowGraphstores nodes, interface nodes, producers, and block conditions.GuardedValueFlowBuilderconstructs the graph from LLVM IR and Lotus IR infrastructure.GuardedValueFlowSolverreasons over guarded flows.GuardedValueFlowSerializeremits graph data for inspection or testing.LotusAdapterbridges GVFG with other Lotus representations.
Use cases
Guard-aware dataflow reasoning.
Querying feasible flows with branch conditions attached.
Exporting richer value-flow graphs for experiments and debugging.
See also
See SVFG — Sparse Value-Flow Graph for the unguarded sparse value-flow graph.
See PDG — Program Dependence Graph for dependence-based querying.