diff options
Diffstat (limited to 'asmcomp/split.ml')
-rw-r--r-- | asmcomp/split.ml | 9 |
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; |