Handbook
Glossary
apply-local-split ( interval plan -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
greedy
Inputs
interval
an
object
plan
an
object
Outputs
None
Definition
USING:
accessors
assocs
compiler.cfg.linear-scan.allocation.spilling
compiler.cfg.linear-scan.live-intervals
kernel
math
namespaces
sequences
;
IN:
compiler.cfg.register-allocation.greedy
::
apply-local-split
( interval plan -- )
interval
greedy-costs
get
delete-at
interval
interval-progress
cascade>>
:>
cascade interval
:>
selected! plan
second
interval
first-use
n>>
>
[
selected plan
second
1
-
split-for-spill
selected!
spill-stage
cascade
enqueue-split-product
]
when
plan
third
selected
last-use
n>>
<
[
selected plan
third
1
+
split-for-spill
spill-stage
cascade
enqueue-split-product
selected!
]
when
selected
finish-local-product
selected! selected
spill-stage
advance-stage
cascade selected
interval-progress
cascade<<
plan
first
selected
interval-progress
hint<<
selected plan
first
greedy-assign
"local-splits"
greedy-count
"splits"
greedy-count
;