Handbook
Glossary
sorted-preference-colors ( graph order affinities available -- colors )
Vocabulary
compiler
.
cfg
.
register-allocation
.
validation
.
color-preferences
Inputs
graph
an
object
order
an
object
affinities
an
object
available
an
object
Outputs
colors
an
object
Definition
USING:
assocs
compiler.cfg.register-allocation.chordal
compiler.cfg.registers
cpu.architecture
kernel
math
sequences
sets
;
IN:
compiler.cfg.register-allocation.validation.color-preferences
::
sorted-preference-colors
( graph order affinities available -- colors )
H{
}
clone
:>
colors graph
keys
[
H{
}
clone
]
H{
}
map>assoc
:>
preferences affinities
affinity-chunks
:>
chunks chunks
values
[
first
]
map
members
[
H{
}
clone
]
H{
}
map>assoc
:>
chunk-preferences order
[|
vertex |
vertex chunks
at
first
chunk-preferences
at
:>
shared vertex graph
at
[
colors
at
]
map
sift
:>
occupied vertex
rep-of
reg-class-of
available
at
length
:>
capacity capacity
<iota>
[
occupied
member?
not
]
filter
:>
free free
empty?
[
vertex occupied capacity
uncolorable-spill-result
]
when
free vertex preferences
at
shared
sorted-preference-color
:>
chosen chosen vertex colors
set-at
chosen shared
inc-at
vertex affinities
at
[|
partner
weight |
chosen partner preferences
at
[
0
or
weight 8
*
+
]
change-at
]
assoc-each
]
each
colors
;