diff options
Diffstat (limited to 'scheduling/MyRTLpathScheduleraux.ml')
-rw-r--r-- | scheduling/MyRTLpathScheduleraux.ml | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/scheduling/MyRTLpathScheduleraux.ml b/scheduling/MyRTLpathScheduleraux.ml index 5663c877..b2892213 100644 --- a/scheduling/MyRTLpathScheduleraux.ml +++ b/scheduling/MyRTLpathScheduleraux.ml @@ -92,7 +92,10 @@ let maybe_change_dest_reg ?only_rename inst fwmap ~next_free_reg = | Ibuiltin _ | Ijumptable _ | Itailcall _ - | Ireturn _ -> do_nothing + | Ireturn _ -> + (* Do not rename registers if the instructions MUST end a path because we cannot add + * restoration code afterwards. *) + do_nothing | _ as i -> match RTL.instr_defs i with | None -> do_nothing |