functor (I : Init) ->
sig
val name : string
val debug : bool Pervasives.ref
type data = Data_for_aorai.state * Cil_datatype.Stmt.Set.t
type t = Aorai_dataflow.Computer.data
val copy : 'a -> 'a
val pretty : Format.formatter -> Data_for_aorai.state * 'a -> unit
val computeFirstPredecessor :
Cil_datatype.Stmt.Set.elt ->
Data_for_aorai.state * Cil_datatype.Stmt.Set.t ->
Data_for_aorai.state * Cil_datatype.Stmt.Set.t
val combinePredecessors :
Cil_datatype.Stmt.Set.elt ->
old:Data_for_aorai.state * 'a ->
Data_for_aorai.state * Cil_datatype.Stmt.Set.t ->
(Data_for_aorai.state * Cil_datatype.Stmt.Set.t) option
val doInstr :
Aorai_dataflow.Call_state.key ->
Cil_types.instr ->
Data_for_aorai.state * 'a ->
((Data_for_aorai.Aorai_state.Set.t * Data_for_aorai.Aorai_state.Set.t *
Data_for_aorai.Vals.t)
Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t * 'a)
Dataflow.action
val doGuard :
'a -> 'b -> 'c -> 'd Dataflow.guardaction * 'e Dataflow.guardaction
val doStmt :
'a ->
'b Data_for_aorai.Aorai_state.Map.t * 'c -> 'd Dataflow.stmtaction
val filterStmt : 'a -> bool
val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
val doEdge : 'a -> 'b -> 'c -> 'c
module StmtStartData :
sig
type data = data
val clear : unit -> unit
val mem : Cil_types.stmt -> bool
val find : Cil_types.stmt -> data
val replace : Cil_types.stmt -> data -> unit
val add : Cil_types.stmt -> data -> unit
val iter : (Cil_types.stmt -> data -> unit) -> unit
val length : unit -> int
end
end