spillset-evidence ( -- witness )


Vocabulary
compiler.cfg.register-allocation.backtracking.evidence

Inputs
None

Outputs
witnessan object


Definition


:: 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 } } ;