signature COLORIZER =
sig
structure OperSet : ORD_SET
- where type Key.ord_key = x86.basicop
+ where type Key.ord_key = Blarg.oper
structure LiveMap : ORD_MAP
where type Key.ord_key = int
structure TempMap : ORD_MAP
type colorlist = (Temp.temp * int) list
type igraph = OperSet.set TempMap.map
- structure X = x86
+ structure X = Blarg
(* val color_single : igraph -> Temp.temp * colorlist -> colorlist
* color_single graph (temp, regs) => takes an interference graph, the temp to be colored, and the
colorized)
@ (List.map
(fn X.REG a => X.regtonum a
- | loss => raise ErrorMsg.InternalError ("Bad kind of specreg " ^ (X.pp_oper (loss, Temp.Long))))
+ | loss => raise ErrorMsg.InternalError ("Bad kind of specreg " ^ (X.pp_oper loss)))
fixeds)
(* Greedy-colorize -- pick the lowest number that isn't used by a neighbor *)
fun greedy i l =
signature COLORORDER =
sig
structure OperSet : ORD_SET
- where type Key.ord_key = x86.basicop
+ where type Key.ord_key = Blarg.oper
structure LiveMap : ORD_MAP
where type Key.ord_key = int
structure TempMap : ORD_MAP
structure ColorOrder :> COLORORDER =
struct
structure T = Temp
- structure X = x86
+ structure X = Blarg
structure OperSet = Igraph.OperSet
structure LiveMap = Igraph.LiveMap
if (w2 > w1)
then (t2, w2)
else (t1, w1))
- (Temp.new "emarnus" Temp.Word, ~9999)
+ (Temp.new "emarnus", ~9999)
weights
fun ditchOne f nil = nil (* Special case of filter, which bails out after it removes one. *)