HELP: allocate-registers
{ $values
- { "live-intervals" sequence }
- { "sync-point" sequence }
+ { "intervals/sync-points" sequence }
{ "registers" assoc }
{ "live-intervals'" sequence }
}
handled-intervals get
active-intervals inactive-intervals [ get values concat ] bi@ 3append ;
-: allocate-registers ( intervals/sync-point registers -- live-intervals' )
+: allocate-registers ( intervals/sync-points registers -- live-intervals' )
init-allocator unhandled-min-heap get (allocate-registers)
gather-intervals ;
HELP: init-allocator
{ $values
- { "live-intervals" { $link sequence } " of " { $link live-interval-state } }
- { "sync-points" { $link sequence } " of " { $link sync-point } }
+ { "intervals/sync-points" { $link sequence } " of " { $link live-interval-state } " and " { $link sync-point } "." }
{ "registers" { $link assoc } " mapping from register class to available machine registers." }
}
{ $description "Initializes the state for the register allocator." }
{ $description "The instruction number immediately preceeding this block." } ;
HELP: finish-live-intervals
-{ $values { "live-intervals" sequence } { "seq" sequence } }
+{ $values { "live-intervals" sequence } }
{ $description "Since live intervals are computed in a backward order, we have to reverse some sequences, and compute the start and end." } ;
HELP: from