diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1995-12-15 10:18:29 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1995-12-15 10:18:29 +0000 |
commit | 26747162e818f87609b4c85f11347f87b0f93f99 (patch) | |
tree | a32104592590a828e65dd56fa88dbaa48db02a35 /bytecomp/lambda.mli | |
parent | 89c839060afcb87247a8f9b4d1280ba112e8c50d (diff) | |
download | ocaml-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.mli | 14 |
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 |