functor (X : MakePostDomArg) ->
sig
module PostDom :
sig
val self : State.t
val name : string
val mark_as_computed : ?project:Project.t -> unit -> unit
val is_computed : ?project:Project.t -> unit -> bool
module Datatype : Datatype.S
val add_hook_on_update : (Datatype.t -> unit) -> unit
val howto_marshal : (Datatype.t -> 'a) -> ('a -> Datatype.t) -> unit
type key = Cil_types.stmt
type data = DomSet.t
val replace : key -> data -> unit
val add : key -> data -> unit
val clear : unit -> unit
val length : unit -> int
val iter : (key -> data -> unit) -> unit
val iter_sorted :
?cmp:(key -> key -> int) -> (key -> data -> unit) -> unit
val fold : (key -> data -> 'a -> 'a) -> 'a -> 'a
val fold_sorted :
?cmp:(key -> key -> int) -> (key -> data -> 'a -> 'a) -> 'a -> 'a
val memo : ?change:(data -> data) -> (key -> data) -> key -> data
val find : key -> data
val find_all : key -> data list
val mem : key -> bool
val remove : key -> unit
end
module PostComputer :
sig
val name : string
val debug : bool
type t = Compute.DomSet.t
module StmtStartData = PostDom
val pretty : Format.formatter -> Compute.DomSet.t -> unit
val combineStmtStartData :
'a ->
old:Compute.DomSet.t -> Compute.DomSet.t -> Compute.DomSet.t option
val combineSuccessors :
Compute.DomSet.domset ->
Compute.DomSet.domset -> Compute.DomSet.domset
val doStmt :
Cil_datatype.Stmt.Hptset.elt ->
Compute.DomSet.domset Dataflow2.action
val doInstr : 'a -> 'b -> 'c -> 'd Dataflow2.action
val filterIf : Cil_types.stmt -> Cil_datatype.Stmt.t -> bool
val filterStmt : Cil_types.stmt -> Cil_datatype.Stmt.t -> bool
val funcExitData : Compute.DomSet.domset
end
module PostCompute : sig val compute : Cil_types.stmt list -> unit end
val compute_postdom : Kernel_function.t -> unit
val get_stmt_postdominators :
Kernel_function.t ->
Compute.MakePostDom.PostDom.key -> Compute.MakePostDom.PostDom.data
val stmt_postdominators :
Kernel_function.t ->
Compute.MakePostDom.PostDom.key -> Cil_datatype.Stmt.Hptset.t
val is_postdominator :
Kernel_function.t ->
opening:Compute.MakePostDom.PostDom.key ->
closing:Cil_datatype.Stmt.Hptset.elt -> bool
val display_postdom : unit -> unit
val print_dot_postdom : string -> Kernel_function.t -> unit
end