Handbook
Glossary
second-chance-bundles ( allocated -- bundles )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
allocated
an
object
Outputs
bundles
an
object
Definition
USING:
accessors
assocs
compiler.cfg.register-allocation.rematerialization
kernel
namespaces
sequences
;
IN:
compiler.cfg.register-allocation.backtracking
::
second-chance-bundles
( allocated -- bundles )
H{
}
clone
:>
groups
H{
}
clone
:>
by-vreg allocated
[
dup
vreg>>
by-vreg
push-at
]
each
backtracking-original-intervals
get
[|
interval |
interval
vreg>>
rematerialization-of
[
]
[
interval
vreg>>
by-vreg
at
:>
fragments interval fragments
uncovered-vreg-ranges
[|
range |
range fragments
productive-gap?
[
interval
vreg>>
range
gap-interval
[|
gap |
gap interval
vreg>>
bundle-spillsets
get
at
groups
push-at
]
when*
]
[
backtracking-interior-gaps-skipped
inc
]
if
]
each
]
if
]
each
groups
values
[
<allocation-bundle>
]
map
;