diff options
author | Cyril SIX <cyril.six@kalray.eu> | 2021-01-26 14:46:37 +0100 |
---|---|---|
committer | Cyril SIX <cyril.six@kalray.eu> | 2021-01-26 14:46:37 +0100 |
commit | d85a8eb3d89ecb0ff5d7894b26a3497cd9fd7155 (patch) | |
tree | 4056ff7f8aff4ec4f954a5f2e9616b780cba1523 /scheduling | |
parent | 18a2f80686c651dde5964098c8b76e5aa94e6340 (diff) | |
download | compcert-kvx-d85a8eb3d89ecb0ff5d7894b26a3497cd9fd7155.tar.gz compcert-kvx-d85a8eb3d89ecb0ff5d7894b26a3497cd9fd7155.zip |
Code simplification of get_path_map (no functionality change)
Diffstat (limited to 'scheduling')
-rw-r--r-- | scheduling/RTLpathLivegenaux.ml | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/scheduling/RTLpathLivegenaux.ml b/scheduling/RTLpathLivegenaux.ml index ab921954..d415c115 100644 --- a/scheduling/RTLpathLivegenaux.ml +++ b/scheduling/RTLpathLivegenaux.ml @@ -82,13 +82,15 @@ let get_path_map code entry join_points = let visited = ref (PTree.map (fun n i -> false) code) in let path_map = ref PTree.empty in let rec dig_path e = - let psize = ref (-1) in - let path_successors = ref [] in - let rec dig_path_rec n : (path_info * node list) option = - if not (get_some @@ PTree.get n !visited) then + if (get_some @@ PTree.get e !visited) then + () + else begin + visited := PTree.set e true !visited; + let psize = ref (-1) in + let path_successors = ref [] in + let rec dig_path_rec n : (path_info * node list) option = let inst = get_some @@ PTree.get n code in begin - visited := PTree.set n true !visited; psize := !psize + 1; let successor = match predicted_successor inst with | None -> None @@ -102,15 +104,15 @@ let get_path_map code entry join_points = input_regs = Regset.empty; output_regs = Regset.empty }, !path_successors @ successors_inst inst) end - else None - in match dig_path_rec e with - | None -> () - | Some ret -> - let (path_info, succs) = ret in - begin - path_map := PTree.set e path_info !path_map; - List.iter dig_path succs - end + in match dig_path_rec e with + | None -> () + | Some ret -> + let (path_info, succs) = ret in + begin + path_map := PTree.set e path_info !path_map; + List.iter dig_path succs + end + end in begin dig_path entry; !path_map |