aboutsummaryrefslogtreecommitdiff
path: root/kernel/nativelambda.mli
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2019-04-23 21:35:20 +0200
committerPierre-Marie Pédrot2019-04-23 21:35:20 +0200
commit75c5264aa687480c66a6765d64246b5ebd2c0d54 (patch)
tree756baf747199c1f88c601c514887adabd9a05c5f /kernel/nativelambda.mli
parent9834f23fe9bc8a659ed36c426d557e94179476b0 (diff)
parent8b886a0a201444b7eb782f3fa0dc52a7b6fe8837 (diff)
Merge PR #9962: [native compiler] Encoding of constructors based on tags
Ack-by: maximedenes Reviewed-by: ppedrot
Diffstat (limited to 'kernel/nativelambda.mli')
-rw-r--r--kernel/nativelambda.mli12
1 files changed, 8 insertions, 4 deletions
diff --git a/kernel/nativelambda.mli b/kernel/nativelambda.mli
index 687789e82b..446df1a1ea 100644
--- a/kernel/nativelambda.mli
+++ b/kernel/nativelambda.mli
@@ -33,9 +33,10 @@ type lambda =
| Lif of lambda * lambda * lambda
| Lfix of (int array * (string * inductive) array * int) * fix_decl
| Lcofix of int * fix_decl
- | Lmakeblock of prefix * pconstructor * int * lambda array
- (* prefix, constructor Name.t, constructor tag, arguments *)
- (* A fully applied constructor *)
+ | Lint of int (* a constant constructor *)
+ | Lmakeblock of prefix * inductive * int * lambda array
+ (* prefix, inductive name, constructor tag, arguments *)
+ (* A fully applied non-constant constructor *)
| Luint of Uint63.t
| Lval of Nativevalues.t
| Lsort of Sorts.t
@@ -43,7 +44,10 @@ type lambda =
| Llazy
| Lforce
-and lam_branches = (constructor * Name.t Context.binder_annot array * lambda) array
+and lam_branches =
+ { constant_branches : lambda array;
+ nonconstant_branches : (Name.t Context.binder_annot array * lambda) array;
+ }
and fix_decl = Name.t Context.binder_annot array * lambda array * lambda array