Module CfgTools

Construction and output of CFGs.

module H = MyCFG.NodeH
module NH = MyCFG.NodeH
val find_backwards_reachable : initial_size:int -> (module MyCFG.CfgBackward) -> MyCFG.node -> unit NH.t
module SCC : sig ... end

Strongly connected component.

val computeSCCs : (module MyCFG.CfgBidir) -> NH.key list -> SCC.t list * SCC.t NH.t
val pretty_edges : unit -> ('a * Edge.t) list -> GoblintCil.Pretty.doc
val node_scc_global : SCC.t NH.t
exception Not_connect of GoblintCil.fundec
val createCFG : GoblintCil.file -> (MyCFG.edges * Node.t) list H.t * (MyCFG.edges * Node.t) list H.t * CilType.Stmt.t list MyCFG.CfgEdgeH.t
val minimizeCFG : ('a list H.t * (MyCFG.edges * Node.t) list H.t) -> CilType.Stmt.t list MyCFG.CfgEdgeH.t -> ((CilType.Location.t * Edge.t) list * H.key) list H.t * ((CilType.Location.t * Edge.t) list * H.key) list H.t * CilType.Stmt.t list MyCFG.CfgEdgeH.t
module type CfgPrinters = sig ... end
module type NodeStyles = sig ... end
module CfgPrinters (NodeStyles : NodeStyles) : sig ... end
val fprint_dot : (module CfgPrinters) -> ((MyCFG.node -> ((GoblintCil.location * MyCFG.edge) list * MyCFG.node) -> unit) -> unit) -> Stdlib.Format.formatter -> unit
val fprint_hash_dot : ((GoblintCil.location * MyCFG.edge) list * MyCFG.node) list H.t -> unit
val getCFG : GoblintCil.file -> MyCFG.cfg * MyCFG.cfg * (Node.t -> MyCFG.edges -> Node.t -> CilType.Stmt.t list)
val compute_cfg : GoblintCil.file -> (module MyCFG.CfgBidirSkip)
val iter_fd_edges : (module MyCFG.CfgBackward) -> CilType.Fundec.t -> (MyCFG.node -> (MyCFG.edges * MyCFG.node) -> unit) -> unit
val fprint_fundec_html_dot : (module MyCFG.CfgBidir) -> (MyCFG.node -> bool) -> CilType.Fundec.t -> Stdlib.Format.formatter -> unit
val sprint_fundec_html_dot : (module MyCFG.CfgBidir) -> (MyCFG.node -> bool) -> CilType.Fundec.t -> string
val dead_code_cfg : (module MyCFG.FileCfg) -> (MyCFG.node -> bool) -> unit
val getGlobalInits : GoblintCil.file -> MyCFG.edges
val numGlobals : GoblintCil.Cil.file -> int