functor
(Param : sig
val current_pdg : Build.BuildPdg.t
val ctrl_dpds_infos : CtrlDpds.t
end) ->
sig
val name : string
val pdg_debug : ('a, Format.formatter, unit) Pervasives.format -> 'a
val debug : bool Pervasives.ref
type t = PdgTypes.data_state
val current_pdg : Build.BuildPdg.t
val current_function : Cil_types.kernel_function
val ctrl_dpds_infos : CtrlDpds.t
module StmtStartData :
sig
type data = PdgTypes.data_state
val states : PdgTypes.data_state Cil_datatype.Stmt.Hashtbl.t
val clear : unit -> unit
val mem : Cil_datatype.Stmt.Hashtbl.key -> bool
val find : Cil_datatype.Stmt.Hashtbl.key -> PdgTypes.data_state
val replace :
Cil_datatype.Stmt.Hashtbl.key -> PdgTypes.data_state -> unit
val add :
Cil_datatype.Stmt.Hashtbl.key -> PdgTypes.data_state -> unit
val iter :
(Cil_datatype.Stmt.Hashtbl.key -> PdgTypes.data_state -> unit) ->
unit
val length : unit -> int
end
val copy : Build.Computer.t -> Build.Computer.t
val pretty : Format.formatter -> Build.Computer.t -> unit
val computeFirstPredecessor : 'a -> 'b -> 'b
val combinePredecessors :
Cil_types.stmt ->
old:PdgTypes.data_state ->
Build.Computer.t -> PdgTypes.data_state option
val doInstr :
Cil_types.stmt ->
Cil_types.instr ->
PdgTypes.data_state -> PdgTypes.data_state Dataflow.action
val doStmt : Cil_types.stmt -> Build.Computer.t -> 'a Dataflow.stmtaction
val filterStmt : 'a -> bool
val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
val doGuard :
'a -> 'b -> 'c -> 'd Dataflow.guardaction * 'e Dataflow.guardaction
val doEdge : 'a -> 'b -> 'c -> 'c
end