summaryrefslogtreecommitdiff
path: root/utils/profile.mli
diff options
context:
space:
mode:
Diffstat (limited to 'utils/profile.mli')
-rw-r--r--utils/profile.mli44
1 files changed, 44 insertions, 0 deletions
diff --git a/utils/profile.mli b/utils/profile.mli
new file mode 100644
index 0000000000..83a8252412
--- /dev/null
+++ b/utils/profile.mli
@@ -0,0 +1,44 @@
+(**************************************************************************)
+(* *)
+(* OCaml *)
+(* *)
+(* Pierre Chambart, OCamlPro *)
+(* *)
+(* Copyright 2015 Institut National de Recherche en Informatique et *)
+(* en Automatique. *)
+(* *)
+(* All rights reserved. This file is distributed under the terms of *)
+(* the GNU Lesser General Public License version 2.1, with the *)
+(* special exception on linking described in the file LICENSE. *)
+(* *)
+(**************************************************************************)
+
+(** Compiler performance recording *)
+
+type file = string
+
+val reset : unit -> unit
+(** erase all recorded profile information *)
+
+val record_call : ?accumulate:bool -> string -> (unit -> 'a) -> 'a
+(** [record_call pass f] calls [f] and records its profile information. *)
+
+val record : ?accumulate:bool -> string -> ('a -> 'b) -> 'a -> 'b
+(** [record pass f arg] records the profile information of [f arg] *)
+
+type column = [ `Time | `Alloc | `Top_heap | `Abs_top_heap ]
+
+val print : Format.formatter -> column list -> unit
+(** Prints the selected recorded profiling information to the formatter. *)
+
+(** Command line flags *)
+
+val options_doc : string
+val all_columns : column list
+
+(** A few pass names that are needed in several places, and shared to
+ avoid typos. *)
+
+val generate : string
+val transl : string
+val typing : string