Module ProcCfg.Backward
Wrapper that reverses the direction of the CFG
Parameters
Base : S with type instrs_dir = IR.Instrs.not_reversed
Signature
type t= Base.ttype instrs_dir= IR.Instrs.reversed
module Node = Base.Nodeval instrs : Node.t -> instrs_dir IR.Instrs.tget the instructions from a node
val fold_succs : t -> (Node.t, Node.t, 'accum) IStdlib.IStd.Container.foldfold over all successors (normal and exceptional)
val fold_preds : t -> (Node.t, Node.t, 'accum) IStdlib.IStd.Container.foldfold over all predecessors (normal and exceptional)
val fold_normal_succs : t -> (Node.t, Node.t, 'accum) IStdlib.IStd.Container.foldfold over non-exceptional successors
val fold_normal_preds : t -> (Node.t, Node.t, 'accum) IStdlib.IStd.Container.foldfold over non-exceptional predecessors
val fold_exceptional_succs : t -> (Node.t, Node.t, 'accum) IStdlib.IStd.Container.foldfold over exceptional successors
val fold_exceptional_preds : t -> (Node.t, Node.t, 'accum) IStdlib.IStd.Container.foldfold over exceptional predescessors
val start_node : t -> Node.tval exit_node : t -> Node.tval proc_desc : t -> IR.Procdesc.tval fold_nodes : (t, Node.t, 'accum) IStdlib.IStd.Container.foldval from_pdesc : IR.Procdesc.t -> tval is_loop_head : IR.Procdesc.t -> Node.t -> boolval wto : t -> Node.t IR.WeakTopologicalOrder.Partition.t