Handbook
Glossary
split-bundle-minimally ( bundle -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
bundle
an
object
Outputs
None
Definition
USING:
accessors
assocs
compiler.cfg.linear-scan.allocation.spilling
kernel
math
namespaces
sequences
sorting
vectors
;
IN:
compiler.cfg.register-allocation.backtracking
::
split-bundle-minimally
( bundle -- )
backtracking-splits
inc
backtracking-split-budget-exhaustions
inc
bundle
intervals>>
[|
interval |
interval
ensure-interval-home
H{
}
clone
:>
clusters interval
uses>>
[|
use |
use use
n>>
backtracking-phase-mode?
get
[
2
/i
]
when
clusters
push-at
]
each
clusters
values
[
[
n>>
]
sort-by
]
map
[
first
n>>
]
sort-by
[|
uses |
interval
clone
uses
>vector
>>uses
f
>>reload-from
f
>>spill-to
spill-after
normalize-phase-reload
phase-spill-before
enqueue-interval
backtracking-minimal-splits
inc
]
each
]
each
;