You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
61 lines
1.4 KiB
5 years ago
|
(*
|
||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*)
|
||
|
|
||
|
(** Abstract Domain *)
|
||
|
module type Dom = sig
|
||
5 years ago
|
type t [@@deriving equal, sexp_of]
|
||
5 years ago
|
|
||
|
val pp : t pp
|
||
|
val report_fmt_thunk : t -> Formatter.t -> unit
|
||
|
val init : Global.t vector -> t
|
||
5 years ago
|
val join : t -> t -> t option
|
||
5 years ago
|
val is_false : t -> bool
|
||
5 years ago
|
val dnf : t -> t list
|
||
5 years ago
|
val exec_assume : t -> Exp.t -> t option
|
||
5 years ago
|
val exec_kill : t -> Reg.t -> t
|
||
5 years ago
|
val exec_move : t -> (Reg.t * Exp.t) vector -> t
|
||
5 years ago
|
val exec_inst : t -> Llair.inst -> t option
|
||
5 years ago
|
|
||
|
val exec_intrinsic :
|
||
|
skip_throw:bool
|
||
|
-> t
|
||
5 years ago
|
-> Reg.t option
|
||
|
-> Reg.t
|
||
5 years ago
|
-> Exp.t list
|
||
5 years ago
|
-> t option option
|
||
5 years ago
|
|
||
|
type from_call [@@deriving sexp_of]
|
||
|
|
||
|
val call :
|
||
|
summaries:bool
|
||
5 years ago
|
-> globals:Reg.Set.t
|
||
5 years ago
|
-> actuals:Exp.t list
|
||
|
-> areturn:Reg.t option
|
||
|
-> formals:Reg.t list
|
||
5 years ago
|
-> freturn:Reg.t option
|
||
5 years ago
|
-> locals:Reg.Set.t
|
||
5 years ago
|
-> t
|
||
|
-> t * from_call
|
||
|
|
||
5 years ago
|
val post : Reg.Set.t -> from_call -> t -> t
|
||
|
val retn : Reg.t list -> Reg.t option -> from_call -> t -> t
|
||
5 years ago
|
|
||
|
val resolve_callee :
|
||
5 years ago
|
(string -> Llair.func list) -> Exp.t -> t -> Llair.func list * t
|
||
5 years ago
|
|
||
5 years ago
|
val recursion_beyond_bound : [`skip | `prune]
|
||
|
|
||
5 years ago
|
type summary
|
||
|
|
||
|
val pp_summary : summary pp
|
||
|
|
||
|
val create_summary :
|
||
5 years ago
|
locals:Reg.Set.t -> formals:Reg.Set.t -> t -> summary * t
|
||
5 years ago
|
|
||
|
val apply_summary : t -> summary -> t option
|
||
|
end
|