CfgToolsConstruction and output of CFGs.
module H = MyCFG.NodeHmodule NH = MyCFG.NodeHval find_backwards_reachable :
initial_size:int ->
(module MyCFG.CfgBackward) ->
MyCFG.node ->
unit NH.tmodule SCC : sig ... endStrongly connected component.
val computeSCCs :
(module MyCFG.CfgBidir) ->
NH.key list ->
SCC.t list * SCC.t NH.tval pretty_edges : unit -> ('a * Edge.t) list -> GoblintCil.Pretty.docval createCFG :
GoblintCil.file ->
(MyCFG.edges * Node.t) list H.t
* (MyCFG.edges * Node.t) list H.t
* CilType.Stmt.t list MyCFG.CfgEdgeH.tval 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.tmodule type CfgPrinters = sig ... endmodule type NodeStyles = sig ... endmodule CfgPrinters (NodeStyles : NodeStyles) : sig ... endval fprint_dot :
(module CfgPrinters) ->
((MyCFG.node ->
((GoblintCil.location * MyCFG.edge) list * MyCFG.node) ->
unit) ->
unit) ->
Stdlib.Format.formatter ->
unitval fprint_hash_dot :
((GoblintCil.location * MyCFG.edge) list * MyCFG.node) list H.t ->
unitval 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) ->
unitval fprint_fundec_html_dot :
(module MyCFG.CfgBidir) ->
(MyCFG.node -> bool) ->
CilType.Fundec.t ->
Stdlib.Format.formatter ->
unitval sprint_fundec_html_dot :
(module MyCFG.CfgBidir) ->
(MyCFG.node -> bool) ->
CilType.Fundec.t ->
stringval dead_code_cfg :
path:Fpath.t ->
(module MyCFG.FileCfg) ->
(MyCFG.node -> bool) ->
unitval getGlobalInits : GoblintCil.file -> MyCFG.edges