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 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