diff options
author | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-09 15:32:28 +0200 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-09 15:32:28 +0200 |
commit | bc9ad2280839677bb46acfd846ff05bb37719b6e (patch) | |
tree | 238de281268baef8399d52c7315eb618b7e120d9 /abstract/varenv.ml | |
parent | 52a7d356a1c1c1bf0d1881d0cf6e13bb94dbc1a4 (diff) | |
download | scade-analyzer-bc9ad2280839677bb46acfd846ff05bb37719b6e.tar.gz scade-analyzer-bc9ad2280839677bb46acfd846ff05bb37719b6e.zip |
Begin dynamic partitionning ; CORRECT BUG IN unpass_cycle !!
Diffstat (limited to 'abstract/varenv.ml')
-rw-r--r-- | abstract/varenv.ml | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/abstract/varenv.ml b/abstract/varenv.ml index 8bd3971..450bef3 100644 --- a/abstract/varenv.ml +++ b/abstract/varenv.ml @@ -20,6 +20,7 @@ type varenv = { cycle : (id * id * typ) list; (* s'(x) = s(y) *) forget : (id * typ) list; (* s'(x) not specified *) + forget_inv : (id * typ) list; } @@ -267,7 +268,12 @@ let mk_varenv (rp : rooted_prog) f cl = [] last_vars in let forget = List.map (fun (_, id, ty) -> (id, ty)) rp.all_vars in + let forget_inv = List.map (fun (_, id, ty) -> (id, ty)) + (List.filter + (fun (_, id, _) -> + not (List.exists (fun (_, b, _) -> b = id) cycle)) + all_vars) in { evars = enum_vars; nvars = num_vars; ev_order; - last_vars; all_vars; cycle; forget } + last_vars; all_vars; cycle; forget; forget_inv } |