aboutsummaryrefslogtreecommitdiff
path: root/test-suite/bugs/closed/bug_12196.v
blob: c0851b32047f96ce030d13379abcd44afba01cc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
(** TODO: Figure out how to test "sanity" for the ltac profiler output *)
Fixpoint fact (n : nat) := match n with 0 => 1 | S n' => n * fact n' end.
Fixpoint walk (n : nat) := match n with 0 => tt | S n => walk n end.
Ltac slow := idtac + (do 2 (let x := eval lazy in (walk (fact 9)) in idtac)).
Ltac slow2 := idtac + (do 2 (let x := eval lazy in (walk (fact 9)) in idtac)).
Ltac multi := idtac + slow + slow2.
Set Ltac Profiling.
Goal True.
  Time try (multi; fail).
  (* Warning: Ltac Profiler cannot yet handle backtracking into multi-success
 tactics; profiling results may be wildly inaccurate.
 [profile-backtracking,ltac] *)
  Show Ltac Profile.
  (* Used to be:
total time:      0.000s

 tactic                                   local  total   calls       max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
multi ---------------------------------  47.1%  47.1%       1    0.000s
slow ----------------------------------  35.3%  35.3%       1    0.000s
slow2 ---------------------------------  17.6%  17.6%       1    0.000s

 tactic                                   local  total   calls       max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
multi ---------------------------------  47.1%  47.1%       1    0.000s
slow ----------------------------------  35.3%  35.3%       1    0.000s
slow2 ---------------------------------  17.6%  17.6%       1    0.000s

   *)
  (* Now:
total time:      2.074s

 tactic                                   local  total   calls       max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
multi ---------------------------------   0.0% 100.0%       6    1.119s
slow ----------------------------------  54.0%  54.0%       3    1.119s
slow2 ---------------------------------  46.0%  46.0%       3    0.955s

 tactic                                   local  total   calls       max
────────────────────────────────────────┴──────┴──────┴───────┴─────────┘
multi ---------------------------------   0.0% 100.0%       6    1.119s
 ├─slow --------------------------------  54.0%  54.0%       3    1.119s
 └─slow2 -------------------------------  46.0%  46.0%       3    0.955s

*)
Abort.