(* regalloc.mli *) (* 15-411 *) (* by Arthur O'Dwyer *) (* @version $Id: regalloc.mli,v 1.2 2004/10/26 05:10:07 ajo Exp $ *) (* The register allocator takes a number |numregs| of available registers and a number |stackstart| of already-used stack locations and an existing program |prog|, and returns a 3-tuple consisting of a program |newprog| which has been modified to account for spills, the total number |numslots| of allocated stack slots, and a function |raf| mapping temps onto |REGISTER| or |STACKSLOT| values. | let (newprog, numslots, raf) = Regalloc.regalloc (numregs, Frame.size()) prog | *) val regalloc: (int * int) -> Types.instr list -> (Types.instr list * int * (Types.temp -> Types.regalloc_t))