sig
type node = Cil2cfg.CFG.V.t
type graph = Cil2cfg.t
type tenv = {
graph : Cil2cfg.t;
dfsp : int Cil2cfg.Ntbl.t;
iloop_header : Cil2cfg.LoopInfo.node Cil2cfg.Ntbl.t;
loop_headers : Cil2cfg.LoopInfo.node list;
irreducible : Cil2cfg.LoopInfo.node list;
unstruct_coef : int;
}
val init : Cil2cfg.t -> Cil2cfg.LoopInfo.tenv * Cil2cfg.CFG.V.t
val eq_nodes : Cil2cfg.CFG.V.t -> Cil2cfg.CFG.V.t -> bool
val set_pos :
Cil2cfg.LoopInfo.tenv -> Cil2cfg.Ntbl.key -> int -> Cil2cfg.LoopInfo.tenv
val reset_pos :
Cil2cfg.LoopInfo.tenv -> Cil2cfg.Ntbl.key -> Cil2cfg.LoopInfo.tenv
val get_pos : Cil2cfg.LoopInfo.tenv -> Cil2cfg.Ntbl.key -> int
val get_pos_if_traversed :
Cil2cfg.LoopInfo.tenv -> Cil2cfg.Ntbl.key -> int option
val set_iloop_header :
Cil2cfg.LoopInfo.tenv ->
Cil2cfg.Ntbl.key -> Cil2cfg.LoopInfo.node -> Cil2cfg.LoopInfo.tenv
val get_iloop_header :
Cil2cfg.LoopInfo.tenv -> Cil2cfg.Ntbl.key -> Cil2cfg.LoopInfo.node option
val add_loop_header :
Cil2cfg.LoopInfo.tenv -> Cil2cfg.LoopInfo.node -> Cil2cfg.LoopInfo.tenv
val add_irreducible :
Cil2cfg.LoopInfo.tenv -> Cil2cfg.LoopInfo.node -> Cil2cfg.LoopInfo.tenv
val add_reentry_edge : 'a -> 'b -> 'c -> 'a
val is_irreducible : Cil2cfg.LoopInfo.tenv -> Cil2cfg.CFG.V.t -> bool
val fold_succ :
(Cil2cfg.LoopInfo.tenv -> Cil2cfg.CFG.E.vertex -> Cil2cfg.LoopInfo.tenv) ->
Cil2cfg.LoopInfo.tenv -> Cil2cfg.CFG.vertex -> Cil2cfg.LoopInfo.tenv
val unstructuredness : Cil2cfg.LoopInfo.tenv -> float
end