diff options
| author | gareuselesinge | 2013-10-03 09:09:22 +0000 |
|---|---|---|
| committer | gareuselesinge | 2013-10-03 09:09:22 +0000 |
| commit | c1388ce6338742ab20aea9774e6510f43d7697ff (patch) | |
| tree | 32eeb4b1420cec7745a3f1008fd832f7b44723a1 | |
| parent | c92af9e12b95b731e04834c3d28cde3a80156e9b (diff) | |
STM: delegate proofs to slaves only if they are not trivial
Still too simple and not configurable
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16837 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | toplevel/stm.ml | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/toplevel/stm.ml b/toplevel/stm.ml index e20e75194e..8165da5d52 100644 --- a/toplevel/stm.ml +++ b/toplevel/stm.ml @@ -920,6 +920,8 @@ end = struct (* {{{ *) let pstate = ["meta counter"; "evar counter"; "program-tcc-table"] +let delegate_policy_check l = interactive () = `Yes || List.length l > 20 + let collect_proof cur hd id = prerr_endline ("Collecting proof ending at "^Stateid.to_string id); let is_defined = function @@ -934,10 +936,12 @@ let collect_proof cur hd id = `NotOptimizable `MutualProofs (* TODO: enderstand where we need that *) | Some (parent, (_,_,VernacProof(_,Some _) as v)), `Fork (_, hd', _) -> assert (VCS.Branch.equal hd hd' || VCS.Branch.equal hd VCS.edit_branch); - `Optimizable (parent, Some v, accn) + if delegate_policy_check accn then `Optimizable (parent, Some v, accn) + else `NotOptimizable `TooShort | Some (parent, _), `Fork (_, hd', _) -> assert (VCS.Branch.equal hd hd' || VCS.Branch.equal hd VCS.edit_branch); - `MaybeOptimizable (parent, accn) + if delegate_policy_check accn then `MaybeOptimizable (parent, accn) + else `NotOptimizable `TooShort | _, `Sideff se -> collect None (id::accn) view.next | _ -> `NotOptimizable `Unknown in match cur, (VCS.visit id).step with |
