aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-08-21 21:31:36 +0200
committerJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-08-21 21:31:36 +0200
commitd89eb8be31e557459a3cb65b1b8485c47468da87 (patch)
treec148d469a6d51cde156cd16dad7655725d642497
parenta0119e5987a1cd84f2baa9286f39b1fc6498af23 (diff)
downloadcompcert-kvx-d89eb8be31e557459a3cb65b1b8485c47468da87.tar.gz
compcert-kvx-d89eb8be31e557459a3cb65b1b8485c47468da87.zip
Revert "Fix error"
This reverts commit a0119e5987a1cd84f2baa9286f39b1fc6498af23. Fix applied at wrong place
-rw-r--r--scheduling/MyRTLpathScheduleraux.ml22
1 files changed, 5 insertions, 17 deletions
diff --git a/scheduling/MyRTLpathScheduleraux.ml b/scheduling/MyRTLpathScheduleraux.ml
index 7dcb147c..2cf58d2e 100644
--- a/scheduling/MyRTLpathScheduleraux.ml
+++ b/scheduling/MyRTLpathScheduleraux.ml
@@ -1428,9 +1428,9 @@ let scheduler f =
(sb, to_insert_compensation_pcs, live_renames ) )
in
- let (sb_tocompensate_liverenames, code, pm, next_free_reg, next_free_pc) = ListLabels.fold_left sb_tocompensatepcs_liverenames
- ~init:([], code, pm, next_free_reg, next_free_pc)
- ~f:(fun (sbs, code, pm, next_free_reg, next_free_pc) (sb, to_compensate_pcs, live_renames) ->
+ let (sb_tocompensate_liverenames, code, next_free_reg) = ListLabels.fold_left sb_tocompensatepcs_liverenames
+ ~init:([], code, next_free_reg)
+ ~f:(fun (sbs, code, next_free_reg) (sb, to_compensate_pcs, live_renames) ->
if !Clflags.option_fpoormansssa then (
let to_compensate = InsertPositionMap.map (fun pcs ->
let insts = List.map (fun pc -> get_some @@ PTree.get pc code) pcs in
@@ -1445,7 +1445,7 @@ let scheduler f =
to_compensate_pcs
code
in
- ((sb, to_compensate, live_renames)::sbs, code, pm, next_free_reg, next_free_pc)
+ ((sb, to_compensate, live_renames)::sbs, code, next_free_reg)
) else (
assert (PTree.elements live_renames |> List.for_all (fun (_, l) -> l = []));
let dup_count = InsertPositionMap.fold
@@ -1477,18 +1477,6 @@ let scheduler f =
in
let pi = get_some @@ PTree.get sb.instructions.(0) pm in
let (code, live_renames, next_free_reg) = rename_regs ~only_rename:arg_regs sb code ~liveatentry:pi.input_regs ~next_free_reg in
- let final_restoration = final_restoration_code sb code live_renames in
- let (sb, code, pm, next_free_pc, fwmap) = insert_code sb code pm final_restoration ~next_free_pc in
- let live_renames =
- PTree.fold
- (fun acc pc insts ->
- let pc' = apply_map' fwmap pc in
- (* Remove final renames, which were just inserted *)
- let insts = if Camlcoq.P.eq pc sb.instructions.(Array.length sb.instructions - 1) then [] else insts in
- PTree.set pc' insts acc)
- live_renames
- PTree.empty
- in
let to_compensate = InsertPositionMap.map (fun pcs ->
let insts = List.map (fun pc -> get_some @@ PTree.get pc code) pcs in
insts)
@@ -1502,7 +1490,7 @@ let scheduler f =
to_compensate_pcs
code
in
- ((sb, to_compensate, live_renames)::sbs, code, pm, next_free_reg, next_free_pc) ))
+ ((sb, to_compensate, live_renames)::sbs, code, next_free_reg) ))
in
(* Insert the compensation code (downward scheduling) and update the restoration code