sig
type ident = string
type register = Register.t
type label = Label.t
type operand = Reg of Register.t | Spilled of int
type instr =
Eload of Ltltree.register * int * Ltltree.register * Ltltree.label
| Estore of Ltltree.register * Ltltree.register * int * Ltltree.label
| Egoto of Ltltree.label
| Ereturn
| Econst of int32 * Ltltree.operand * Ltltree.label
| Emunop of Ops.munop * Ltltree.operand * Ltltree.label
| Embinop of Ops.mbinop * Ltltree.operand * Ltltree.operand *
Ltltree.label
| Emubranch of Ops.mubranch * Ltltree.operand * Ltltree.label *
Ltltree.label
| Embbranch of Ops.mbbranch * Ltltree.operand * Ltltree.operand *
Ltltree.label * Ltltree.label
| Epush of Ltltree.operand * Ltltree.label
| Ecall of Ltltree.ident * Ltltree.label
| Epop of Ltltree.register * Ltltree.label
type cfg = Ltltree.instr Label.map
type deffun = {
fun_name : Ltltree.ident;
fun_entry : Ltltree.label;
fun_body : Ltltree.cfg;
}
type file = { funs : Ltltree.deffun list; }
val succ : Ltltree.instr -> Ltltree.label list
val print_operand : Stdlib.Format.formatter -> Ltltree.operand -> unit
val print_instr : Stdlib.Format.formatter -> Ltltree.instr -> unit
val print_graph :
Stdlib.Format.formatter -> Ltltree.cfg -> Ltltree.label -> unit
val print_deffun : Stdlib.Format.formatter -> Ltltree.deffun -> unit
val print_file : Stdlib.Format.formatter -> Ltltree.file -> unit
end