aboutsummaryrefslogtreecommitdiffhomepage
path: root/ltac/profile_ltac.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ltac/profile_ltac.ml')
-rw-r--r--ltac/profile_ltac.ml16
1 files changed, 10 insertions, 6 deletions
diff --git a/ltac/profile_ltac.ml b/ltac/profile_ltac.ml
index 3661fe54f..fe591c775 100644
--- a/ltac/profile_ltac.ml
+++ b/ltac/profile_ltac.ml
@@ -73,7 +73,7 @@ module Local = Summary.Local
let stack = Local.ref ~name:"LtacProf-stack" [empty_treenode root]
-let reset_profile () =
+let reset_profile_tmp () =
Local.(stack := [empty_treenode root]);
encountered_multi_success_backtracking := false
@@ -147,7 +147,7 @@ let rec list_iter_is_last f = function
| x :: xs -> f false x :: list_iter_is_last f xs
let header =
- str " tactic local total calls max" ++
+ str " tactic local total calls max " ++
fnl () ++
str "────────────────────────────────────────┴──────┴──────┴───────┴─────────┘" ++
fnl ()
@@ -160,6 +160,7 @@ let rec print_node ~filter all_total indent prefix (s, e) =
++ padl 8 (string_of_int e.ncalls)
++ padl 10 (format_sec (e.max_total))
) ++
+ fnl () ++
print_table ~filter all_total indent false e.children
and print_table ~filter all_total indent first_level table =
@@ -179,7 +180,7 @@ and print_table ~filter all_total indent first_level table =
let sep1 = if first_level then "─" else if is_last then " └─" else " ├─" in
print_node ~filter all_total (indent ^ sep0) (indent ^ sep1)
in
- prlist_with_sep fnl (fun pr -> pr) (list_iter_is_last iter ls)
+ prlist (fun pr -> pr) (list_iter_is_last iter ls)
let to_string ~filter node =
let tree = node.children in
@@ -224,7 +225,6 @@ let to_string ~filter node =
header ++
print_table ~filter all_total "" true flat_tree ++
fnl () ++
- fnl () ++
header ++
print_table ~filter all_total "" true tree
in
@@ -295,7 +295,7 @@ let exit_tactic start_time c =
| [] | [_] ->
(* oops, our stack is invalid *)
encounter_multi_success_backtracking ();
- reset_profile ()
+ reset_profile_tmp ()
| node :: (parent :: rest as full_stack) ->
let name = string_of_call c in
if not (String.equal name node.name) then
@@ -330,7 +330,7 @@ let exit_tactic start_time c =
(* Calls are over, we reset the stack and send back data *)
if rest == [] && get_profiling () then begin
assert(String.equal root parent.name);
- reset_profile ();
+ reset_profile_tmp ();
feedback_results parent
end
@@ -381,6 +381,10 @@ let _ =
data := SM.add s (merge_roots results other_results) !data
| _ -> ()))
+let reset_profile () =
+ reset_profile_tmp ();
+ data := SM.empty
+
(* ******************** *)
let print_results_filter ~filter =