Module Print

module Print: sig .. end

val pretty_stmt : Format.formatter -> Cil_types.stmt -> unit
module Printer: sig .. end
module PostdomGraph: Graph.Graphviz.Dot(Printer)
val get_postdom : Cil_types.kernel_function ->
Cil_datatype.Stmt.Hptset.t option Cil_datatype.Kinstr.Hashtbl.t ->
Cil_datatype.Stmt.Hptset.elt -> Cil_datatype.Stmt.Hptset.t
val reduce : Cil_types.kernel_function ->
Cil_datatype.Stmt.Hptset.t option Cil_datatype.Kinstr.Hashtbl.t ->
Cil_datatype.Stmt.Hptset.elt -> unit

s_postdom are s postdominators, including s. We don't have to represent the relation between s and s. And because the postdom relation is transitive, if p is in s_postdom, we can remove p_postdom from s_postdom in order to have a clearer graph.

val build_reduced_graph : Cil_types.kernel_function ->
Cil_datatype.Stmt.Hptset.t option Cil_datatype.Kinstr.Hashtbl.t ->
Cil_datatype.Stmt.Hptset.elt list -> unit
val build_dot : string -> Kernel_function.t -> unit