local-split-plan ( interval -- plan/f )


Vocabulary
compiler.cfg.register-allocation.greedy

Inputs
intervalan object


Outputs
plan/fan object


Definition


:: local-split-plan ( interval -- plan/f )
f :> best! interval allocation-order [| reg |
interval reg register-free-windows [| window |
interval uses>> [| use |
use n>> window first >= use n>> 1 +
window second <= and
] filter :> uses uses empty?
[ ] [
uses
[ n>> greedy-use-weights get at 1 or ] map-sum
:> benefit best
[ benefit best fourth > ] [ t ] if [
reg uses first n>> uses last n>> benefit
4array best!
] when
] if
] each
] each best ;