diff options
| author | Pierre-Marie Pédrot | 2020-08-27 16:50:45 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2020-08-27 16:50:45 +0200 |
| commit | 1abf7c94f97948f8171c2fe1fec99cd890e8d1f6 (patch) | |
| tree | 3c60f0cd4a38608dacceca0b012de120bdc46a79 /kernel/vmlambda.mli | |
| parent | f140359a6df94d1caa2ccea3da2d48e01eacc44b (diff) | |
| parent | 4ee0cedff7726a56ebd53125995a7ae131660b4a (diff) | |
Merge PR #12849: Rename VM-related kernel/cfoo files to kernel/vmfoo
Reviewed-by: gares
Reviewed-by: ppedrot
Reviewed-by: silene
Diffstat (limited to 'kernel/vmlambda.mli')
| -rw-r--r-- | kernel/vmlambda.mli | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kernel/vmlambda.mli b/kernel/vmlambda.mli new file mode 100644 index 0000000000..bd11c2667f --- /dev/null +++ b/kernel/vmlambda.mli @@ -0,0 +1,45 @@ +open Names +open Constr +open Vmvalues +open Environ + +type lambda = + | Lrel of Name.t * int + | Lvar of Id.t + | Levar of Evar.t * lambda array + | Lprod of lambda * lambda + | Llam of Name.t Context.binder_annot array * lambda + | Llet of Name.t Context.binder_annot * lambda * lambda + | Lapp of lambda * lambda array + | Lconst of pconstant + | Lprim of pconstant option * CPrimitives.t * lambda array + (* No check if None *) + | Lcase of case_info * reloc_table * lambda * lambda * lam_branches + | Lif of lambda * lambda * lambda + | Lfix of (int array * int) * fix_decl + | Lcofix of int * fix_decl + | Lint of int + | Lmakeblock of int * lambda array + | Luint of Uint63.t + | Lfloat of Float64.t + | Lval of structured_values + | Lsort of Sorts.t + | Lind of pinductive + | Lproj of Projection.Repr.t * lambda + +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 + +exception TooLargeInductive of Pp.t + +val lambda_of_constr : optimize:bool -> env -> Constr.t -> lambda + +val decompose_Llam : lambda -> Name.t Context.binder_annot array * lambda + +val get_alias : env -> Constant.t -> Constant.t + +(** Dump the VM lambda code after compilation (for debugging purposes) *) +val dump_lambda : bool ref |
