basis.compiler.cfg.linear-scan.*: fixing boostrap problems due to the
word rename Sorry for the noise.locals-and-roots
parent
eb68ad6932
commit
a60f122c5e
|
@ -4,7 +4,7 @@ compiler.cfg.linear-scan.live-intervals help.markup help.syntax math ;
|
|||
IN: compiler.cfg.linear-scan.allocation.spilling
|
||||
|
||||
HELP: assign-spill
|
||||
{ $values { "live-interval" live-interval } }
|
||||
{ $values { "live-interval" live-interval-state } }
|
||||
{ $description "Assigns a spill slot for the live interval." }
|
||||
{ $see-also assign-spill-slot } ;
|
||||
|
||||
|
@ -30,10 +30,10 @@ HELP: spill-before
|
|||
|
||||
HELP: split-for-spill
|
||||
{ $values
|
||||
{ "live-interval" live-interval }
|
||||
{ "live-interval" live-interval-state }
|
||||
{ "n" integer }
|
||||
{ "before" live-interval }
|
||||
{ "after" live-interval }
|
||||
{ "before" live-interval-state }
|
||||
{ "after" live-interval-state }
|
||||
} { $description "During register allocation an interval needs to be split so that the 'after' part of it can be placed in a spill slot." } ;
|
||||
|
||||
HELP: spill-intersecting
|
||||
|
@ -57,7 +57,7 @@ HELP: spill-partially-available
|
|||
{ $description "A register would be available for part of the new interval's lifetime if all active and inactive intervals using that register were split and spilled." } ;
|
||||
|
||||
HELP: trim-before-ranges
|
||||
{ $values { "live-interval" live-interval } }
|
||||
{ $values { "live-interval" live-interval-state } }
|
||||
{ $description "Extends the last intervals range to one after the last use point and removes all intervals beyond that." } ;
|
||||
|
||||
ARTICLE: "compiler.cfg.linear-scan.allocation.spilling" "Spill slot assignment"
|
||||
|
|
|
@ -31,7 +31,7 @@ HELP: compute-live-intervals
|
|||
HELP: find-use
|
||||
{ $values
|
||||
{ "insn#" integer }
|
||||
{ "live-interval" live-interval }
|
||||
{ "live-interval" live-interval-state }
|
||||
{ "vreg-use/f" vreg-use }
|
||||
}
|
||||
{ $description "Finds the live intervals " { $link vreg-use } " at the given instruction number, if it has one." } ;
|
||||
|
@ -44,7 +44,11 @@ HELP: from
|
|||
{ $var-description "An integer representing a sequence number one lower than all numbers in the currently processed block." } ;
|
||||
|
||||
HELP: intervals-intersect?
|
||||
{ $values { "interval1" live-interval } { "interval2" live-interval } { "?" boolean } }
|
||||
{ $values
|
||||
{ "interval1" live-interval-state }
|
||||
{ "interval2" live-interval-state }
|
||||
{ "?" boolean }
|
||||
}
|
||||
{ $description "Checks if two live intervals intersect each other." } ;
|
||||
|
||||
HELP: live-interval-state
|
||||
|
@ -79,6 +83,10 @@ HELP: live-interval-state
|
|||
HELP: live-intervals
|
||||
{ $var-description "Mapping from vreg to " { $link live-interval-state } "." } ;
|
||||
|
||||
HELP: record-def
|
||||
{ $values { "vreg" integer } { "n" integer } { spill-slot? boolean } }
|
||||
{ $description "Records that the 'vreg' is defined at the instruction numbered 'n'." } ;
|
||||
|
||||
HELP: record-temp
|
||||
{ $values { "vreg" number } { "n" number } }
|
||||
{ $description "Assigns the interval [n,n] to vreg:s live interval." } ;
|
||||
|
@ -96,10 +104,12 @@ HELP: to
|
|||
{ $var-description "An integer representing a sequence number equal to the highest number in the currently processed block." } ;
|
||||
|
||||
ARTICLE: "compiler.cfg.linear-scan.live-intervals" "Live interval utilities"
|
||||
"This vocab contains words for managing live intervals."
|
||||
"This vocab contains words for managing live intervals. The main word is " { $link compute-live-intervals } " which goes through the " { $link cfg } " and returns a sequence of " { $link live-interval-state } " instances which encodes all liveness information for it."
|
||||
$nl
|
||||
"Liveness classes and constructors:"
|
||||
{ $subsections <live-interval> live-interval } ;
|
||||
{ $subsections <live-interval> live-interval-state }
|
||||
"Recording liveness info:"
|
||||
{ $subsections record-def record-use record-temp } ;
|
||||
|
||||
|
||||
ABOUT: "compiler.cfg.linear-scan.live-intervals"
|
||||
|
|
Loading…
Reference in New Issue