Reviewed By: jberdine Differential Revision: D3684221 fbshipit-source-id: fe6917fmaster
parent
185f6493bc
commit
36e2175293
@ -0,0 +1,36 @@
|
|||||||
|
(*
|
||||||
|
* Copyright (c) 2016 - present Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*)
|
||||||
|
|
||||||
|
open! Utils
|
||||||
|
|
||||||
|
module F = Format
|
||||||
|
|
||||||
|
(* for now this is just a call site, but in the future we may add input access path, output kind,
|
||||||
|
etc. depending on what we need *)
|
||||||
|
type t =
|
||||||
|
{
|
||||||
|
site : CallSite.t;
|
||||||
|
}
|
||||||
|
|
||||||
|
let make site =
|
||||||
|
{ site }
|
||||||
|
|
||||||
|
let compare pt1 pt2 =
|
||||||
|
(match pt1, pt2 with
|
||||||
|
| {site=site1}, {site=site2} -> CallSite.compare site1 site2
|
||||||
|
)[@warning "+9"]
|
||||||
|
|
||||||
|
let pp fmt s =
|
||||||
|
F.fprintf fmt "%a" CallSite.pp s.site
|
||||||
|
|
||||||
|
module Set = PrettyPrintable.MakePPSet(struct
|
||||||
|
type nonrec t = t
|
||||||
|
let compare = compare
|
||||||
|
let pp_element = pp
|
||||||
|
end)
|
@ -0,0 +1,20 @@
|
|||||||
|
(*
|
||||||
|
* Copyright (c) 2016 - present Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*)
|
||||||
|
|
||||||
|
module F = Format
|
||||||
|
|
||||||
|
type t
|
||||||
|
|
||||||
|
val make : CallSite.t -> t
|
||||||
|
|
||||||
|
val compare : t -> t -> int
|
||||||
|
|
||||||
|
val pp : F.formatter -> t -> unit
|
||||||
|
|
||||||
|
module Set : PrettyPrintable.PPSet with type elt = t
|
@ -0,0 +1,16 @@
|
|||||||
|
(*
|
||||||
|
* Copyright (c) 2016 - present Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*)
|
||||||
|
|
||||||
|
module type S = sig
|
||||||
|
include TraceElem.S
|
||||||
|
|
||||||
|
val to_callee : t -> CallSite.t -> t
|
||||||
|
(** ith param * ith source kind *)
|
||||||
|
val get : CallSite.t -> (int * t) list
|
||||||
|
end
|
@ -0,0 +1,19 @@
|
|||||||
|
(*
|
||||||
|
* Copyright (c) 2016 - present Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*)
|
||||||
|
|
||||||
|
module type S = sig
|
||||||
|
include TraceElem.S
|
||||||
|
|
||||||
|
val is_footprint : t -> bool
|
||||||
|
val to_return : t -> CallSite.t -> t
|
||||||
|
val make_footprint : CallSite.t -> t
|
||||||
|
|
||||||
|
(** ith return value * ith sink kind *)
|
||||||
|
val get : CallSite.t -> (int * t) list
|
||||||
|
end
|
@ -0,0 +1,26 @@
|
|||||||
|
(*
|
||||||
|
* Copyright (c) 2016 - present Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*)
|
||||||
|
|
||||||
|
module F = Format
|
||||||
|
|
||||||
|
module type S = sig
|
||||||
|
type kind
|
||||||
|
type t
|
||||||
|
|
||||||
|
val call_site : t -> CallSite.t
|
||||||
|
val kind : t -> kind
|
||||||
|
val is_empty : t -> bool
|
||||||
|
|
||||||
|
val make : kind -> CallSite.t -> t
|
||||||
|
val make_empty : CallSite.t -> t
|
||||||
|
|
||||||
|
val compare : t -> t -> int
|
||||||
|
val equal : t -> t -> bool
|
||||||
|
val pp : F.formatter -> t -> unit
|
||||||
|
end
|
Loading…
Reference in new issue