diff options
Diffstat (limited to 'backend/Linearizeaux.ml')
-rw-r--r-- | backend/Linearizeaux.ml | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/backend/Linearizeaux.ml b/backend/Linearizeaux.ml index 41a98873..46d5c3f1 100644 --- a/backend/Linearizeaux.ml +++ b/backend/Linearizeaux.ml @@ -79,13 +79,13 @@ let basic_blocks f joins = let rec do_instr_list = function | [] -> assert false | Lbranch s :: _ -> next_in_block blk minpc s - | Ltailcall _ :: _ -> end_block blk minpc - | Lcond (_, _, ifso, ifnot) :: _ -> + | Ltailcall (sig0, ros) :: _ -> end_block blk minpc + | Lcond (cond, args, ifso, ifnot) :: _ -> end_block blk minpc; start_block ifso; start_block ifnot - | Ljumptable(_, tbl) :: _ -> + | Ljumptable(arg, tbl) :: _ -> end_block blk minpc; List.iter start_block tbl | Lreturn :: _ -> end_block blk minpc - | _ :: b' -> do_instr_list b' in + | instr :: b' -> do_instr_list b' in do_instr_list b (* next_in_block: check if join point and either extend block or start block *) @@ -110,5 +110,5 @@ let flatten_blocks blks = (* Build the enumeration *) -let enumerate_aux f _ = +let enumerate_aux f reach = flatten_blocks (basic_blocks f (join_points f)) |