package llvmgraph

  1. Overview
  2. Docs

Do not compute the Dom graph, it will fail. Using compute_all is fine, as long as you don't use the dom_graph closure.

module S : sig ... end
type idoms = Llvm.llbasicblock -> Llvm.llbasicblock -> bool
type dom_tree = Llvm.llbasicblock -> Llvm.llbasicblock list
type dominators = Llvm.llbasicblock -> Llvm.llbasicblock list
type dom = Llvm.llbasicblock -> Llvm.llbasicblock -> bool
type sdom = Llvm.llbasicblock -> Llvm.llbasicblock -> bool
type dom_frontier = Llvm.llbasicblock -> Llvm.llbasicblock list
type dom_graph = unit -> Llvm.llvalue
type dom_functions = {
  1. idom : idom;
  2. idoms : idoms;
  3. dom_tree : dom_tree;
  4. dominators : dominators;
  5. dom : dom;
  6. sdom : sdom;
  7. dom_frontier : dom_frontier;
  8. dom_graph : dom_graph;
}
val dominators_to_dom : ('a -> S.t) -> S.elt -> 'a -> bool
val dominators_to_sdom : (Llvm.llbasicblock -> S.t) -> S.elt -> Llvm.llbasicblock -> bool
val dom_to_sdom : (Llvm.llbasicblock -> Llvm.llbasicblock -> bool) -> Llvm.llbasicblock -> Llvm.llbasicblock -> bool
val dominators_to_sdominators : (S.elt -> S.t) -> S.elt -> S.t
val dominators_to_idoms : (S.elt -> S.t) -> S.elt -> S.elt -> bool
val dominators_to_dom_tree : Llvm.llvalue -> ?pred:(Llvm.llvalue -> S.elt -> S.elt list) -> (S.elt -> S.t) -> S.elt -> S.t
val idom_to_idoms : idom -> Llvm.llbasicblock -> Llvm.llbasicblock -> bool
val compute_dom_frontier : Llvm.llvalue -> dom_tree -> idom -> Llvm.llbasicblock -> Llvm.llbasicblock list
val idom_to_dominators : ('a -> 'a) -> 'a -> 'a list
val compute_dom_graph : Llvm.llvalue -> dom_tree -> Llvm.llvalue
OCaml

Innovation. Community. Security.