aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-08 16:53:19 +0200
committernicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-08 16:53:19 +0200
commit386b9053177bb4ef2801cec00b717c400a828139 (patch)
treeaa60500e55c1ae7f3fa41dd2b4497f461604bc7c
parent9b6247b7996f3e0181d27ec0e20daffd28e0884f (diff)
downloadcompcert-kvx-386b9053177bb4ef2801cec00b717c400a828139.tar.gz
compcert-kvx-386b9053177bb4ef2801cec00b717c400a828139.zip
Fix RTLpathScheduleraux.get_live_regs_entry
-rw-r--r--scheduling/RTLpathScheduleraux.ml5
1 files changed, 3 insertions, 2 deletions
diff --git a/scheduling/RTLpathScheduleraux.ml b/scheduling/RTLpathScheduleraux.ml
index 24fef3e8..72cf6682 100644
--- a/scheduling/RTLpathScheduleraux.ml
+++ b/scheduling/RTLpathScheduleraux.ml
@@ -89,7 +89,8 @@ let get_live_regs_entry (sb : superblock) code =
| None -> Regset.empty))
sb.instructions in
let ret =
- Array.fold_right (fun (ins, liveins) regset ->
+ Array.fold_right (fun (ins, liveins) regset_i ->
+ let regset = Registers.Regset.union liveins regset_i in
match ins with
| Inop _ -> regset
| Iop (_, args, dest, _)
@@ -128,7 +129,7 @@ let get_live_regs_entry (sb : superblock) code =
| Ijumptable (reg, _)
| Ireturn (Some reg) ->
Registers.Regset.add reg regset
- | _ -> regset
+ | _ -> regset
) seqa sb.s_output_regs
in debug "live in regs: ";
print_regset ret;