aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scheduling/MyRTLpathScheduleraux.ml8
1 files changed, 6 insertions, 2 deletions
diff --git a/scheduling/MyRTLpathScheduleraux.ml b/scheduling/MyRTLpathScheduleraux.ml
index 03ed24aa..7d493d14 100644
--- a/scheduling/MyRTLpathScheduleraux.ml
+++ b/scheduling/MyRTLpathScheduleraux.ml
@@ -944,10 +944,14 @@ let downschedule_compensation_code sb code pm live_renames ~next_free_pc ~next_f
| None, Some _ | Some _, None -> failwith "downschedule_compensation_code: Scheduling procedure failed."
| Some (idealized_schedule, idealized_final_time)
, Some (default_schedule, default_final_time) ->
- if idealized_final_time = default_final_time then
+ if idealized_final_time >= default_final_time then (
+ if (idealized_final_time > default_final_time) then (
+ debug "Unexpectedly, idealized dependencies lead to a worse expected final time.\n";
+ failwith "Unexpectedly bad final time for idealized schedule";
+ );
(* Early exit *)
InsertPositionMap.empty
- else (
+ ) else (
let sb_length = Array.length sb.instructions in
let pc_to_idx =
Duplicateaux.generate_fwmap