GoblintCil.Dataflow
A framework for data flow analysis for CIL code. Before using this framework, you must initialize the Control-flow Graph for your program, e.g using Cfg.computeFileCFG
module type ForwardsTransfer = sig ... end
module ForwardsDataFlow (T : ForwardsTransfer) : sig ... end
module type BackwardsTransfer = sig ... end
module BackwardsDataFlow (T : BackwardsTransfer) : sig ... end
val find_stmts : Cil.fundec -> Cil.stmt list * Cil.stmt list
Returns (all_stmts, sink_stmts), where all_stmts is a list of the statements in a function, and sink_stmts is a list of the return statments (including statements that fall through the end of a void function). Useful when you need an initial set of statements for BackwardsDataFlow.compute.