1 (* Pasted from Pottier's PP compiler *)
3 (** This module performs graph coloring with an unlimited number of
4 colors and aggressive coalescing. It is used for assigning stack
5 slots to the pseudo-registers that have been spilled by register
8 (* A coloring is a partial function of graph vertices to stack
9 slots. Vertices that are not in the domain of the coloring are
10 waiting for a decision to be made. *)
16 decision Untrusted_interference.Vertex.Map.t
18 (* Here is the coloring algorithm. Out of an interference graph, it
19 produces a coloring and reports how many colors (stack slots) were
20 required. The graph is expected to contain interference and
21 preferences edges between vertices only -- no hardware registers
22 are involved. If the [verbose] flag is set, the algorithm prints
23 information messages to the standard output channel. *)
27 val graph: Untrusted_interference.graph
32 val coloring: coloring