jon.recoil.org

Module Cfg_loop_infos

val compute_back_edges : Cfg.t -> Cfg_dominators.t -> Cfg_edge.Set.t
type loop = Label.Set.t
val compute_loop_of_back_edge : Cfg.t -> Cfg_edge.t -> Cfg_loop_infos.loop
val compute_loops_of_back_edges : Cfg.t -> Cfg_edge.Set.t -> Cfg_loop_infos.loops
type header_map = Cfg_loop_infos.loop list Label.Map.t
val compare_loop_by_cardinal : Cfg_loop_infos.loop -> Cfg_loop_infos.loop -> int
val merge_loops : Cfg_loop_infos.loop list -> Cfg_loop_infos.loop list
type loop_depths = int Label.Map.t
type t = private {
  1. back_edges : Cfg_edge.Set.t;
  2. loops : Cfg_loop_infos.loops;
  3. header_map : Cfg_loop_infos.header_map;
  4. loop_depths : Cfg_loop_infos.loop_depths;
}
val is_in_loop : Cfg_loop_infos.t -> Label.t -> bool