diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1996-01-11 14:15:23 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1996-01-11 14:15:23 +0000 |
commit | f66c567233bff5f417fa3383bf308bfa289b4e9c (patch) | |
tree | c6ee56424d17931eee2c6601fff0e54fa97dadd0 | |
parent | 3e564da17aed5adfe63239b7a5dfed1bc163a3e2 (diff) |
liveness: mettre dans les noeuds Iexit un live_across raisonnable.
split: pour les noeuds Iexit, utiliser i.live et non i.next.live.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@610 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | asmcomp/liveness.ml | 2 | ||||
-rw-r--r-- | asmcomp/split.ml | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/asmcomp/liveness.ml b/asmcomp/liveness.ml index 1e9bd6712..ad1f31c74 100644 --- a/asmcomp/liveness.ml +++ b/asmcomp/liveness.ml @@ -71,7 +71,7 @@ let rec live i finally = i.live <- before_body; before_body | Iexit -> - (* i.live remains empty since no regs are live across *) + i.live <- !live_at_exit; (* These regs are live across *) !live_at_exit | Itrywith(body, handler) -> let at_join = live i.next finally in diff --git a/asmcomp/split.ml b/asmcomp/split.ml index 3a5e902a5..f22ddc93e 100644 --- a/asmcomp/split.ml +++ b/asmcomp/split.ml @@ -170,7 +170,7 @@ let rec rename i sub = (instr_cons (Icatch(new_body, new_handler)) [||] [||] new_next, sub_next) | Iexit -> - exit_subst := merge_substs !exit_subst sub i.next; + exit_subst := merge_substs !exit_subst sub i; (i, None) | Itrywith(body, handler) -> let (new_body, sub_body) = rename body sub in |