diff options
author | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2021-05-28 11:44:11 +0200 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2021-05-28 11:44:11 +0200 |
commit | 05b24fdb11414100b9b04867e6e2d3a1a9054162 (patch) | |
tree | 6ae4a50a2f311c6b2786e64de12d4d5f7755f865 /scheduling/BTLRenumber.ml | |
parent | 56901933d110adef341312e1c7630b672827b41d (diff) | |
download | compcert-kvx-05b24fdb11414100b9b04867e6e2d3a1a9054162.tar.gz compcert-kvx-05b24fdb11414100b9b04867e6e2d3a1a9054162.zip |
Improvements in scheduling and renumbering BTL code
Diffstat (limited to 'scheduling/BTLRenumber.ml')
-rw-r--r-- | scheduling/BTLRenumber.ml | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/scheduling/BTLRenumber.ml b/scheduling/BTLRenumber.ml index 36f3bcf5..58d4f7ac 100644 --- a/scheduling/BTLRenumber.ml +++ b/scheduling/BTLRenumber.ml @@ -3,6 +3,8 @@ open BTL open RTLcommonaux open BTLcommonaux open BTLtypes +open DebugPrint +open PrintBTL let recompute_inumbs btl entry = let btl = reset_visited_ib (reset_visited_ibf btl) in @@ -53,13 +55,6 @@ let recompute_inumbs btl entry = walk succ None; iinfo.inumb <- ipos () | Bseq (ib1, ib2) -> walk ib1 (Some ib2) - | Bcond (_, _, BF (Bgoto s1, iinfoL), BF (Bgoto s2, iinfoR), iinfo) -> - iinfoL.visited <- true; - iinfoR.visited <- true; - let ib1 = get_some @@ PTree.get s1 btl in - let ib2 = get_some @@ PTree.get s2 btl in - walk_smallest_child (p2i s1) (p2i s2) ib1.entry ib2.entry; - iinfo.inumb <- ipos () | Bcond (_, _, BF (Bgoto s1, iinfoL), Bnop None, iinfoF) -> iinfoL.visited <- true; let ib1 = get_some @@ PTree.get s1 btl in @@ -104,8 +99,13 @@ let regenerate_btl_tree btl entry = 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) let renumber btl entry = + (*debug_flag := true;*) let btl' = recompute_inumbs btl entry in - regenerate_btl_tree btl' entry + let ord_btl, new_entry = regenerate_btl_tree btl' entry in + (*debug_flag := false;*) + (ord_btl, new_entry) |