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.

33 lines
1.2 KiB

(*
* Copyright (c) 2009 - 2013 Monoidics ltd.
* Copyright (c) 2013 - 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.
*)
(** Interprocedural Analysis *)
(** Analyze [proc_name] and return the updated summary. Use module
{!Timeout } to call {!perform_analysis_phase } with a time limit, and
then return the updated summary. Executed as a child process. *)
val analyze_proc : Exe_env.t -> Procname.t -> Specs.summary
(** Process the result of the analysis of [proc_name]: update the
returned summary and add it to the spec table. Executed in the
parent process as soon as a child process returns a result. *)
val process_result : Exe_env.t -> (Procname.t * Cg.in_out_calls) -> Specs.summary -> unit
(** Return true if the analysis of [proc_name] should be
skipped. Called by the parent process before attempting to analyze a
proc. *)
val filter_out : Cg.t -> Procname.t -> bool
(** Perform the analysis of an exe_env *)
val do_analysis : Exe_env.t -> unit
(** Print the stats for all the files in the exe_env *)
val print_stats : Exe_env.t -> unit