Module Aorai_dataflow

module Aorai_dataflow: sig .. end
Overapproximation of the states that can be attained at each statement, together with actions that have been performed.

Compute the set of possible set at each function call and return.


val dkey : Aorai_option.category
val set_of_map : 'a Data_for_aorai.Aorai_state.Map.t -> Data_for_aorai.Aorai_state.Set.t
val filter_state : Data_for_aorai.Aorai_state.Set.t ->
'a Data_for_aorai.Aorai_state.Map.t -> 'a Data_for_aorai.Aorai_state.Map.t
module Call_state: State_builder.Hashtbl(Cil_datatype.Stmt.Hashtbl)(Data_for_aorai.Case_state)(sig
val name : string
val dependencies : State.t list
val size : int
end)
val set_call_state : Call_state.key -> Data_for_aorai.state -> unit
module Return_state: State_builder.Hashtbl(Cil_datatype.Stmt.Hashtbl)(Data_for_aorai.Case_state)(sig
val name : string
val dependencies : State.t list
val size : int
end)
val set_return_state : Return_state.key -> Data_for_aorai.state -> unit
module type Init = sig .. end
val compute_func : ((Kernel_function.t * bool Pervasives.ref) list ->
Cil_datatype.Kinstr.t ->
Kernel_function.t -> Data_for_aorai.state -> Data_for_aorai.state)
Pervasives.ref
val extract_current_states : 'a Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
Data_for_aorai.Aorai_state.Set.t
val add_or_merge : Data_for_aorai.Aorai_state.Map.key ->
Data_for_aorai.Aorai_state.Set.t * Data_for_aorai.Aorai_state.Set.t *
Data_for_aorai.Vals.t ->
(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.Set.t * Data_for_aorai.Aorai_state.Set.t *
Data_for_aorai.Vals.t)
Data_for_aorai.Aorai_state.Map.t
val actions_to_range : Promelaast.single_action list ->
Data_for_aorai.range Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t
val make_start_transition : ?is_main:bool ->
Cil_types.kernel_function ->
Data_for_aorai.Aorai_state.Set.t ->
(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
val compose_range : Cil_types.term ->
Cil_types.term ->
Data_for_aorai.range -> Data_for_aorai.range -> Data_for_aorai.Range.t
val compose_bindings : Data_for_aorai.range Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
Cil_datatype.Term.Map.key ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t
val compose_actions : 'a * 'b *
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
'c * 'd *
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
'a * 'd *
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t
val compose_states : (Data_for_aorai.Aorai_state.Set.t * 'a *
Data_for_aorai.Intervals.t Cil_datatype.Term.Map.t)
Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
('b * Data_for_aorai.Aorai_state.Set.t *
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t)
Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
(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
val make_return_transition : Kernel_function.t ->
Data_for_aorai.state ->
(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
module Computer: 
functor (I : Init) -> sig .. end
val compute_func_aux : (Kernel_function.t * bool Pervasives.ref) list ->
Cil_datatype.Kinstr.t ->
Kernel_function.t -> Data_for_aorai.state -> Data_for_aorai.state
val compute_forward : unit -> unit
module type Reachable_end_states = sig .. end
module Pre_state: Kernel_function.Make_Table(Data_for_aorai.Case_state)(sig
val name : string
val dependencies : State.t list
val size : int
end)
val set_kf_init_state : Pre_state.key -> Data_for_aorai.state -> unit
module Post_state: Kernel_function.Make_Table(Data_for_aorai.Case_state)(sig
val name : string
val dependencies : State.t list
val size : int
end)
val set_kf_return_state : Post_state.key -> Data_for_aorai.state -> unit
module Init_loop_state: State_builder.Hashtbl(Cil_datatype.Stmt.Hashtbl)(Data_for_aorai.Case_state)(sig
val name : string
val dependencies : State.t list
val size : int
end)
val set_init_loop_state : Init_loop_state.key -> Data_for_aorai.state -> unit
module Invariant_loop_state: State_builder.Hashtbl(Cil_datatype.Stmt.Hashtbl)(Data_for_aorai.Case_state)(sig
val name : string
val dependencies : State.t list
val size : int
end)
val set_invariant_loop_state : Invariant_loop_state.key -> Data_for_aorai.state -> unit
val backward_analysis : (Kernel_function.t list ->
Kernel_function.t ->
Data_for_aorai.Aorai_state.Set.t -> Data_for_aorai.state)
Pervasives.ref
module Backwards_computer: 
functor (Reach : Reachable_end_states) -> sig .. end
val filter_possible_states : Kernel_function.t ->
Data_for_aorai.Aorai_state.Set.t ->
(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
val filter_return_states : Kernel_function.t ->
'a Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
(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
val filter_loop_states : 'a Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
'b Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
'a Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t
val filter_init_state : 'a Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
Data_for_aorai.Aorai_state.Map.key ->
'b Data_for_aorai.Aorai_state.Map.t ->
'b Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t ->
'b Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t
val backward_analysis_aux : Kernel_function.t list ->
Kernel_function.t -> Data_for_aorai.Aorai_state.Set.t -> Data_for_aorai.state
val compute_backward : unit -> unit
val compute : unit -> unit