Handbook
Glossary
split-at-sync ( interval sync -- intervals )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
interval
an
object
sync
an
object
Outputs
intervals
an
object
Definition
USING:
accessors
arrays
compiler.cfg.linear-scan.allocation.spilling
compiler.cfg.linear-scan.allocation.splitting
compiler.cfg.linear-scan.live-intervals
compiler.cfg.linear-scan.ranges
kernel
sequences
;
IN:
compiler.cfg.register-allocation.backtracking
::
split-at-sync
( interval sync -- intervals )
sync
n>>
interval
ranges>>
ranges-cover?
sync
keep-dst?>>
[
sync
n>>
interval
find-use
[
def-rep>>
]
?call
not
]
[
t
]
if
and
[
interval sync
sync-operand-slots
interval
live-interval-start
interval
live-interval-end
=
[
{
}
]
[
interval sync
n>>
split-interval
[
phase-spill-before
]
[
spill-after
normalize-phase-reload
]
bi*
2array
sift
]
if
]
[
interval
1array
]
if
;