summaryrefslogtreecommitdiffstats
path: root/asmcomp/split.ml
diff options
context:
space:
mode:
Diffstat (limited to 'asmcomp/split.ml')
-rw-r--r--asmcomp/split.ml9
1 files changed, 7 insertions, 2 deletions
diff --git a/asmcomp/split.ml b/asmcomp/split.ml
index 9e076e648..8c553ab9e 100644
--- a/asmcomp/split.ml
+++ b/asmcomp/split.ml
@@ -30,7 +30,7 @@ let subst_regs rv sub =
None -> rv
| Some s ->
let n = Array.length rv in
- let nv = Array.create n Reg.dummy in
+ let nv = Array.make n Reg.dummy in
for i = 0 to n-1 do nv.(i) <- subst_reg rv.(i) s done;
nv
@@ -195,8 +195,13 @@ let set_repres i =
(* Entry point *)
-let fundecl f =
+let reset () =
equiv_classes := Reg.Map.empty;
+ exit_subst := []
+
+let fundecl f =
+ reset ();
+
let new_args = Array.copy f.fun_args in
let (new_body, sub_body) = rename f.fun_body (Some Reg.Map.empty) in
repres_regs new_args;