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.

28 lines
870 B

(*
* 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.
*)
open! IStd
module F = Format
module BasicCost = CostDomain.BasicCost
module Node = ProcCfg.DefaultNode
type debug = {f: 'a. ('a, F.formatter, unit, unit) IStd.format4 -> 'a} [@@unboxed]
module Equalities : sig
type t
end
val compute_costs : debug:debug -> BasicCost.t Node.IdMap.t -> Equalities.t -> unit
(** repeatedly improve the costs given the constraints *)
val get_node_nb_exec : Equalities.t -> Node.id -> BasicCost.t
(** compute the number of times a node is executed by taking into account the program structural
(e.g. control-flow) constraints *)
val collect_constraints : debug:debug -> Procdesc.t -> Equalities.t
(** collect initial constraints for a CFG *)