summaryrefslogtreecommitdiff
path: root/bytecomp/lambda.mli
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1995-12-15 10:18:29 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1995-12-15 10:18:29 +0000
commit26747162e818f87609b4c85f11347f87b0f93f99 (patch)
treea32104592590a828e65dd56fa88dbaa48db02a35 /bytecomp/lambda.mli
parent89c839060afcb87247a8f9b4d1280ba112e8c50d (diff)
downloadocaml-26747162e818f87609b4c85f11347f87b0f93f99.tar.gz
Acces aux variables liees par un pattern-matching entierement revu.
Passe d'elimination des lets inutiles. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@534 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'bytecomp/lambda.mli')
-rw-r--r--bytecomp/lambda.mli14
1 files changed, 6 insertions, 8 deletions
diff --git a/bytecomp/lambda.mli b/bytecomp/lambda.mli
index b69dc36b88..18d5804a8d 100644
--- a/bytecomp/lambda.mli
+++ b/bytecomp/lambda.mli
@@ -68,12 +68,16 @@ type structured_constant =
| Const_block of int * structured_constant list
| Const_float_array of string list
+type let_kind = Strict | Alias
+
+type shared_code = (int * int) list (* stack size -> code label *)
+
type lambda =
Lvar of Ident.t
| Lconst of structured_constant
| Lapply of lambda * lambda list
| Lfunction of Ident.t * lambda
- | Llet of Ident.t * lambda * lambda
+ | Llet of let_kind * Ident.t * lambda * lambda
| Lletrec of (Ident.t * lambda) list * lambda
| Lprim of primitive * lambda list
| Lswitch of lambda * int * (int * lambda) list * int * (int * lambda) list
@@ -84,7 +88,7 @@ type lambda =
| Lsequence of lambda * lambda
| Lwhile of lambda * lambda
| Lfor of Ident.t * lambda * lambda * direction_flag * lambda
- | Lshared of lambda * int option ref
+ | Lshared of lambda * shared_code option ref
| Lassign of Ident.t * lambda
val const_unit: structured_constant
@@ -97,10 +101,4 @@ val is_guarded: lambda -> bool
module IdentSet: Set.S with type elt = Ident.t
val free_variables: lambda -> IdentSet.t
-type compilenv
-
-val empty_env: compilenv
-val add_env: Ident.t -> lambda -> compilenv -> compilenv
-val transl_access: compilenv -> Ident.t -> lambda
-
val transl_path: Path.t -> lambda