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