aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/BTLRenumber.ml
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-05-31 23:51:31 +0200
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-05-31 23:51:31 +0200
commit78fbb0e6f4c2065460a0ddb7e2e3ec94da21169f (patch)
tree5d3a17f888b9e782eb4a822780dfe80ebab022fd /scheduling/BTLRenumber.ml
parentc4344192eca7711e5b781fd0cac9780c9691a881 (diff)
downloadcompcert-kvx-78fbb0e6f4c2065460a0ddb7e2e3ec94da21169f.tar.gz
compcert-kvx-78fbb0e6f4c2065460a0ddb7e2e3ec94da21169f.zip
Dupmap bugfix and some advance in Livegen
Diffstat (limited to 'scheduling/BTLRenumber.ml')
-rw-r--r--scheduling/BTLRenumber.ml7
1 files changed, 4 insertions, 3 deletions
diff --git a/scheduling/BTLRenumber.ml b/scheduling/BTLRenumber.ml
index 58d4f7ac..6ff42a27 100644
--- a/scheduling/BTLRenumber.ml
+++ b/scheduling/BTLRenumber.ml
@@ -87,6 +87,7 @@ let regenerate_btl_tree btl entry =
| Bseq (ib1, ib2) -> Bseq (renumber_iblock ib1, renumber_iblock ib2)
| _ -> ib
in
+ let dm = ref PTree.empty in
let ord_btl =
PTree.fold
(fun ord_btl old_n old_ibf ->
@@ -96,16 +97,16 @@ let regenerate_btl_tree btl entry =
let bi = mk_binfo n in
let ibf = { entry = ib; input_regs = old_ibf.input_regs; binfo = bi } in
if old_n = entry then new_entry := n_pos;
+ dm := PTree.set old_n n_pos !dm;
PTree.set n_pos ibf ord_btl)
btl PTree.empty
in
debug "Renumbered BTL with new_entry=%d:\n" (p2i !new_entry);
print_btl_code stderr ord_btl;
- (ord_btl, !new_entry)
+ ((ord_btl, !new_entry), !dm)
let renumber btl entry =
(*debug_flag := true;*)
let btl' = recompute_inumbs btl entry in
- let ord_btl, new_entry = regenerate_btl_tree btl' entry in
(*debug_flag := false;*)
- (ord_btl, new_entry)
+ regenerate_btl_tree btl' entry