aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-08-16 09:15:09 +0200
committerJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-08-16 09:15:09 +0200
commitb5264b5677eb95dfb1867f8df0bdb81d5ed23ad2 (patch)
tree9b960db6a625b781303d79b72b5ca0ace2adcad1
parent31374ebcf4f2cb85adba3f0f861b8bf2addaeb50 (diff)
downloadcompcert-kvx-b5264b5677eb95dfb1867f8df0bdb81d5ed23ad2.tar.gz
compcert-kvx-b5264b5677eb95dfb1867f8df0bdb81d5ed23ad2.zip
Better relative estimates by systematically supplying correct liveness
information. Correct in the sense that they match the expected scheduling constraints.
-rw-r--r--scheduling/MyRTLpathScheduleraux.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/scheduling/MyRTLpathScheduleraux.ml b/scheduling/MyRTLpathScheduleraux.ml
index 4c8be5f2..7fc940c7 100644
--- a/scheduling/MyRTLpathScheduleraux.ml
+++ b/scheduling/MyRTLpathScheduleraux.ml
@@ -937,7 +937,8 @@ let downschedule_compensation_code sb code pm live_renames ~next_free_pc ~next_f
| "no_move_stores" -> Ignore_liveness
| _ -> failwith "Unsupported option for scheduling code past side exits"
in
- match ideal_schedule'' sb code mode, ideal_schedule'' sb code Default with
+ let sb_with_liveins = {sb with liveins = update_liveins sb.liveins live_renames} in
+ match ideal_schedule'' sb_with_liveins code mode, ideal_schedule'' sb_with_liveins code Default with
| None, None -> InsertPositionMap.empty (* Early Exit*)
| None, Some _ | Some _, None -> failwith "downschedule_compensation_code: Scheduling procedure failed."
| Some (idealized_schedule, idealized_final_time)