Handbook
Glossary
spill-ssa ( cfg available -- fixed-locations statistics )
Vocabulary
compiler
.
cfg
.
register-allocation
.
chordal
.
spilling
Inputs
cfg
an
object
available
an
object
Outputs
fixed-locations
an
object
statistics
an
object
Definition
USING:
accessors
arrays
assocs
compiler.cfg
compiler.cfg.linear-scan.allocation.state
compiler.cfg.register-allocation.chordal.spilling.next-use
compiler.cfg.register-allocation.rematerialization
compiler.cfg.registers
compiler.cfg.rpo
compiler.cfg.ssa.destruction.leaders
kernel
namespaces
sequences
;
IN:
compiler.cfg.register-allocation.chordal.spilling
::
spill-ssa
( cfg available -- fixed-locations statistics )
available
spill-bank
set
H{
}
clone
spill-homes
set
H{
}
clone
spill-memory-locations
set
H{
}
clone
spill-plans
set
H{
}
clone
spill-statistics
set
H{
}
clone
spill-def-renaming
set
H{
}
clone
spill-slots
set
cfg
remove-unused-spill-phis
representations
get
keys
[
dup
]
H{
}
map>assoc
leader-map
set
cfg
prepare-rematerialization
cfg
compute-next-uses
nip
:>
exits cfg
reverse-post-order
>array
:>
blocks blocks
[|
bb |
bb bb exits
at
new-spill-block
bb
spill-plans
get
set-at
]
each
blocks
[
spill-plans
get
at
rewrite-spill-block
]
each
blocks
[|
bb
|
bb
successors>>
clone
[|
successor |
bb
spill-plans
get
at
successor
spill-plans
get
at
couple-spill-edge
]
each
]
each
cfg
cfg-changed
spill-memory-locations
get
spill-statistics
get
;