sig
type t' =
Make(Value_local)(Functionwise_From_to_use)(Recording_To_Do).t' = {
additional_deps_table : Locations.Zone.t Cil_datatype.Stmt.Map.t;
additional_deps : Locations.Zone.t;
deps_table : Lmap_bitwise.From_Model.t;
}
val call_stack : Kernel_function.t Stack.t
val find_deps_no_transitivity :
Cil_types.stmt -> Cil_types.exp -> Locations.Zone.t
val find_deps_offset_no_transitivity :
Cil_types.stmt -> Cil_types.offset -> Locations.Zone.t
val find_deps_lval_no_transitivity :
Cil_types.stmt -> Cil_types.lval -> Locations.Zone.t
val find_deps :
Cil_types.stmt ->
Lmap_bitwise.From_Model.t -> Cil_types.exp -> Locations.Zone.t
module Computer :
functor
(REACH : sig
val stmt_can_reach :
Cil_types.stmt -> Cil_types.stmt -> bool
val blocks_closed_by_edge :
Cil_types.stmt -> Cil_types.stmt -> Cil_types.block list
end) ->
sig
val empty_from : t'
val name : string
val debug : bool ref
val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
type t = t'
module StmtStartData :
sig
type data = t'
type key = Cil_types.stmt
val clear : unit -> unit
val mem : key -> bool
val find : key -> data
val replace : key -> data -> unit
val add : key -> data -> unit
val iter : (key -> data -> unit) -> unit
val length : unit -> int
end
val callwise_states_with_formals :
(Kernel_function.t * Lmap_bitwise.From_Model.t) list
Cil_datatype.Stmt.Hashtbl.t
type substit =
Make(Value_local)(Functionwise_From_to_use)(Recording_To_Do).Computer(REACH).substit =
Froms of Locations.Zone.t
| Lvalue of Lmap_bitwise.From_Model.LOffset.t
val cached_substitute :
Lmap_bitwise.From_Model.t ->
Locations.Zone.t -> Locations.Zone.t -> Locations.Zone.t
val display_one_from : Format.formatter -> t' -> unit
val display_one_from_stmt :
Format.formatter -> Cil_types.stmt -> t' -> unit
val display_from : Format.formatter -> unit
val copy : t -> t
val pretty : Format.formatter -> t -> unit
val eliminate_additional :
Locations.Zone.t Cil_datatype.Stmt.Map.t ->
Cil_types.stmt ->
Locations.Zone.t * Locations.Zone.t Cil_datatype.Stmt.Map.t * int
val computeFirstPredecessor : Cil_datatype.Stmt.Map.key -> t' -> t'
val combinePredecessors :
Cil_datatype.Stmt.Map.key -> old:t' -> t' -> t' option
val resolv_func_vinfo :
?deps:Locations.Zone.t ->
Cil_types.stmt ->
Cil_types.exp ->
with_alarms:CilE.warn_mode ->
Locations.Zone.t * Kernel_function.Hptset.t
exception Ignore
val doInstr :
Cil_datatype.Stmt.Hashtbl.key ->
Cil_types.instr -> t -> t' Dataflow.action
val doStmt : Cil_types.stmt -> t -> 'a Dataflow.stmtaction
val filterStmt : Cil_types.stmt -> bool
val externalize :
Cil_types.stmt ->
Cil_types.kernel_function -> t' -> Function_Froms.tt
val doGuard :
Cil_types.stmt ->
Cil_types.exp ->
'a -> 'b Dataflow.guardaction * 'c Dataflow.guardaction
val doEdge : Cil_types.stmt -> Cil_types.stmt -> t' -> t'
end
val compute_using_cfg : Kernel_function.t -> Function_Froms.tt
val compute_using_prototype_for_state :
Db.Value.state -> Kernel_function.t -> Function_Froms.tt
val compute_using_prototype : Kernel_function.t -> Function_Froms.tt
val compute_and_return : Kernel_function.t -> Function_Froms.t
val compute : Kernel_function.t -> unit
end