diff options
author | Justus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr> | 2021-07-07 11:40:43 +0200 |
---|---|---|
committer | Justus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr> | 2021-07-07 11:40:43 +0200 |
commit | 2ca732c8ca6afbbcae71483d5f1818e4c03d5969 (patch) | |
tree | 829529b776fccdedad90c403fcdf5aac4a68dcec | |
parent | 8abe877ee60b670d4debcd579e360a290461ff8f (diff) | |
download | compcert-kvx-2ca732c8ca6afbbcae71483d5f1818e4c03d5969.tar.gz compcert-kvx-2ca732c8ca6afbbcae71483d5f1818e4c03d5969.zip |
Update `next_free_reg` correctly
By incorrectly reusing registers, the schedules of `ideal_schedule'`
were over-constrained.
-rw-r--r-- | scheduling/MyRTLpathScheduleraux.ml | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scheduling/MyRTLpathScheduleraux.ml b/scheduling/MyRTLpathScheduleraux.ml index 8102f6d9..2ec2fddc 100644 --- a/scheduling/MyRTLpathScheduleraux.ml +++ b/scheduling/MyRTLpathScheduleraux.ml @@ -989,7 +989,7 @@ let scheduler f = flush_all (); let next_free_reg = max_reg_function f.fn_RTL |> Camlcoq.P.succ in - let (code, sb_renamings, _next_free_reg) = + let (code, sb_renamings, next_free_reg) = ListLabels.fold_left superblocks ~init:(code, [], next_free_reg) ~f:(fun (code, sb_renamings, next_free_reg) sb -> |