diff options
| author | Pierre-Marie Pédrot | 2020-12-10 18:12:23 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2020-12-12 14:36:43 +0100 |
| commit | 12d53dc64fa565ae6408d2ebb668e997b7e574b3 (patch) | |
| tree | d62021097f2cd8116baedcfa98f43eef9fdc361b /tactics/tactics.ml | |
| parent | 35ead413491cb0297dff4458d4a891cdc607b0d9 (diff) | |
Extrude the computation of redexp flags in reduce.
This was a source of slowdown observed in bedrock2.
Diffstat (limited to 'tactics/tactics.ml')
| -rw-r--r-- | tactics/tactics.ml | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml index 5aa31092e9..2a855e47af 100644 --- a/tactics/tactics.ml +++ b/tactics/tactics.ml @@ -959,17 +959,18 @@ let reduce redexp cl = | Red _ | Hnf | CbvVm _ | CbvNative _ -> StableHypConv | ExtraRedExpr _ -> StableHypConv (* Should we be that lenient ?*) in + let redexp = Redexpr.eval_red_expr env redexp in begin match cl.concl_occs with | NoOccurrences -> Proofview.tclUNIT () | occs -> let redexp = bind_red_expr_occurrences occs nbcl redexp in - let redfun = Redexpr.reduction_of_red_expr env redexp in + let redfun = Redexpr.reduction_of_red_expr_val redexp in e_change_in_concl ~check (revert_cast redfun) end <*> let f (id, occs, where) = let redexp = bind_red_expr_occurrences occs nbcl redexp in - let (redfun, _) = Redexpr.reduction_of_red_expr env redexp in + let (redfun, _) = Redexpr.reduction_of_red_expr_val redexp in let redfun _ env sigma c = redfun env sigma c in let redfun env sigma d = e_pf_change_decl redfun where env sigma d in (id, redfun) |
