Rough frame allocations
[tiger.ml.git] / compiler / src / lib / tiger / tiger_temp.mli
1 (* "We use the word _temporary_ to mean a value that is temporarily held in a
2 * register, and the word _label_ to mean some machine-language location whose
3 * exact address is yet to be determined - just like a label in assembly
4 * language." ch. 6.2, p. 139 *)
5
6 (* "temp" is an abstract name of "local variable" *)
7 module Temp : sig
8 type t
9
10 val gen : unit -> t
11 (** "newtemp" - new temporary from an infinite set of temps. *)
12
13 val to_string : t -> string
14 end
15
16 (* "label" is an abstract name for "static memory address" *)
17 module Label : sig
18 type t
19
20 val gen : unit -> t
21 (** "newlabel" - new label from an infinite set of labels. *)
22
23 val of_string : string -> t
24 (** "namedlabel" - new label whose assembly-language name is string. *)
25
26 val to_string : t -> string
27 end
This page took 0.04568 seconds and 5 git commands to generate.