Skip to content

Commit 2ff55eb

Browse files
committed
Update
1 parent 7a667c6 commit 2ff55eb

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

src/compiler/gencode/translate.ml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -458,10 +458,11 @@ let rec exp env loop_path code { Zelus.e_desc = desc } =
458458
Econcat { left = e1; left_size = s1; right = e2; right_size = s2 }, code
459459
| Zelus.Eop(Zelus.Eatomic, [e]) ->
460460
exp env loop_path code e
461-
| Zelus.Elet _ | Zelus.Eop(Eseq, _) | Zelus.Eop(Eperiod, _)
462-
| Zelus.Eop _ | Zelus.Epresent _
463-
| Zelus.Ematch _ | Zelus.Elocal _ -> assert false
464-
| Zelus.Eapp { f; arg_list } ->
461+
| Zelus.Eop(Eseq, [e1; e2]) ->
462+
let e1, code = exp env loop_path code e1 in
463+
let e2, code = exp env loop_path code e2 in
464+
Oaux.seq e1 e2, code
465+
| Zelus.Eapp { f; arg_list } ->
465466
(* make an application *)
466467
let make_app f arg_list =
467468
match arg_list with | [] -> f | _ -> Eapp { f; arg_list } in
@@ -490,7 +491,10 @@ let rec exp env loop_path code { Zelus.e_desc = desc } =
490491
| Eforloop _ -> Misc.not_yet_implemented "for loops"
491492
| Ereset _ -> Misc.not_yet_implemented "reset"
492493
| Eassert _ -> Misc.not_yet_implemented "assert"
493-
494+
| Zelus.Elet _
495+
| Zelus.Eop(Eperiod, _) | Zelus.Eop _ | Zelus.Epresent _
496+
| Zelus.Ematch _ | Zelus.Elocal _ -> assert false
497+
494498
and arg a_list =
495499
match a_list with | [] -> Ewildpat | _ -> Etuplepat (List.map vardec a_list)
496500

src/compiler/rewrite/deadcode.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,15 @@ let pattern funs useful ({ pat_desc } as p) =
164164
| Evarpat(x) ->
165165
if S.mem x useful then p, useful else { p with pat_desc = Ewildpat }, useful
166166
| Ealiaspat(p_alias, x) ->
167-
let p_alias, acc = Mapfold.pattern funs useful p_alias in
167+
let p_alias, acc = Mapfold.pattern_it funs useful p_alias in
168168
if S.mem x useful then { p with pat_desc = Ealiaspat(p_alias, x) }, useful
169169
else p_alias, useful
170170
| _ -> raise Mapfold.Fallback
171171

172172
(* Remove useless equations. [useful] is the set of useful names *)
173173
let equation funs useful eq =
174174
let eq_empty = Aux.eqmake Defnames.empty EQempty in
175-
let { eq_desc; eq_write } as eq, useful = Mapfold.equation_it funs useful eq in
175+
let { eq_desc; eq_write } as eq, useful = Mapfold.equation funs useful eq in
176176
match eq_desc with
177177
| EQeq(p, e) ->
178178
let { v = w } = Vars.pattern { lv = S.empty; v = S.empty } p in
@@ -221,7 +221,7 @@ let remove_useless_in_equation useful eq =
221221

222222
(* the main entry for expressions. Warning: [e] must be in normal form *)
223223
let expression funs acc e =
224-
let { e_desc } as e, acc = Mapfold.expression_it funs acc e in
224+
let { e_desc } as e, acc = Mapfold.expression funs acc e in
225225
match e_desc with
226226
| Elet({ l_eq } as l, e_let) ->
227227
let { v } = Vars.expression { lv = S.empty; v = S.empty } e_let in

0 commit comments

Comments
 (0)