diff options
Diffstat (limited to 'src/jib/jib_ssa.mli')
| -rw-r--r-- | src/jib/jib_ssa.mli | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/jib/jib_ssa.mli b/src/jib/jib_ssa.mli index 3796a114..11df036c 100644 --- a/src/jib/jib_ssa.mli +++ b/src/jib/jib_ssa.mli @@ -69,10 +69,15 @@ val add_edge : int -> int -> 'a array_graph -> unit type cf_node = | CF_label of string | CF_block of Jib.instr list + | CF_guard of Jib.cval | CF_start val control_flow_graph : Jib.instr list -> int * int list * ('a list * cf_node) array_graph +(** [immediate_dominators graph root] will calculate the immediate + dominators for a control flow graph with a specified root node. *) +val immediate_dominators : 'a array_graph -> int -> int array + type ssa_elem = | Phi of Ast.id * Ast.id list @@ -83,3 +88,5 @@ val ssa : Jib.instr list -> (ssa_elem list * cf_node) array_graph debugging. Can use 'dot -Tpng X.gv -o X.png' to generate a png image of the graph. *) val make_dot : out_channel -> (ssa_elem list * cf_node) array_graph -> unit + +val make_dominators_dot : out_channel -> int array -> (ssa_elem list * cf_node) array_graph -> unit |
