affinity-chunks ( affinities -- chunks )


Vocabulary
compiler.cfg.register-allocation.chordal

Inputs
affinitiesan object


Outputs
chunksan object


Definition


:: affinity-chunks ( affinities -- chunks )
H{ } clone :> chunks affinities keys [| root |
root chunks key?
[ ] [
V{ root } clone :> pending V{ } clone :> chunk
[ pending empty? not ] [
pending pop :> vertex vertex chunks key?
[ ] [
chunk vertex chunks set-at vertex chunk push
vertex affinities at keys pending push-all
] if
] while
] if
] each chunks ;