Module Cfg_loop_infos
val compute_back_edges : Cfg.t -> Cfg_dominators.t -> Cfg_edge.Set.ttype loop = Label.Set.tval compute_loop_of_back_edge : Cfg.t -> Cfg_edge.t -> Cfg_loop_infos.looptype loops = Cfg_loop_infos.loop Cfg_edge.Map.tval compute_loops_of_back_edges :
Cfg.t ->
Cfg_edge.Set.t ->
Cfg_loop_infos.loopstype header_map = Cfg_loop_infos.loop list Label.Map.tval compare_loop_by_cardinal :
Cfg_loop_infos.loop ->
Cfg_loop_infos.loop ->
intval compute_header_map : Cfg_loop_infos.loops -> Cfg_loop_infos.header_mapval merge_loops : Cfg_loop_infos.loop list -> Cfg_loop_infos.loop listtype loop_depths = int Label.Map.tval compute_loop_depths :
Cfg.t ->
Cfg_loop_infos.header_map ->
Cfg_loop_infos.loop_depthstype t = private {back_edges : Cfg_edge.Set.t;loops : Cfg_loop_infos.loops;header_map : Cfg_loop_infos.header_map;loop_depths : Cfg_loop_infos.loop_depths;
}val build : Cfg.t -> Cfg_dominators.t -> Cfg_loop_infos.tval is_in_loop : Cfg_loop_infos.t -> Label.t -> bool