diff options
Diffstat (limited to 'scheduling/MyRTLpathScheduleraux.ml')
-rw-r--r-- | scheduling/MyRTLpathScheduleraux.ml | 8 |
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 |