Handbook
Glossary
spillset-evidence ( -- witness )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
.
evidence
Inputs
None
Outputs
witness
an
object
Definition
USING:
accessors
arrays
assocs
compiler.cfg.linear-scan.allocation.state
compiler.cfg.linear-scan.checker
compiler.cfg.register-allocation.backtracking
namespaces
prettyprint
sequences
sets
;
IN:
compiler.cfg.register-allocation.backtracking.evidence
::
spillset-evidence
( -- witness )
evidence-bank
:>
bank 1
{
0 100
}
evidence-interval
2
{
20 22 24 40
}
evidence-interval
3
{
200 300
}
evidence-interval
4
{
220 222 224 240
}
evidence-interval
4array
bank
backtracking-allocation
:>
allocated allocated bank
check-allocated-intervals
bundle-spillsets
get
values
members
[
home>>
]
filter
[|
spillset |
allocated
[
vreg>>
spillset
members>>
member?
]
filter
[|
interval |
interval
vreg>>
:>
value value spillset
rep>>
lookup-spill-slot
n>>
:>
slot interval
ranges>>
:>
ranges
H{
{
"ssa_value"
value
}
{
"slot"
slot
}
{
"ranges"
ranges
}
}
]
map
:>
children spillset
ranges>>
:>
ranges spillset
home>>
n>>
:>
slot spillset
rep>>
unparse
:>
representation
H{
{
"slot"
slot
}
{
"representation"
representation
}
{
"ranges"
ranges
}
{
"children"
children
}
}
]
map
:>
spillsets
H{
{
"kind"
"spillsets"
}
{
"spillsets"
spillsets
}
}
;