Handbook
Glossary
prepare-greedy-regions ( cfg -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
greedy
Inputs
cfg
an
object
Outputs
None
Definition
USING:
accessors
arrays
assocs
compiler.cfg.instructions
compiler.cfg.linearization
compiler.cfg.loop-detection
compiler.cfg.ssa.destruction.leaders
kernel
math.functions
math.order
namespaces
sequences
;
IN:
compiler.cfg.register-allocation.greedy
::
prepare-greedy-regions
( cfg -- )
cfg
needs-loops
cfg
linearization-order
[
kill-block?>>
]
reject
greedy-blocks
set
H{
}
clone
greedy-copy-hints
set
H{
}
clone
greedy-use-weights
set
cfg
linearization-order
[|
bb |
bb
loop-nesting-at
3
min
:>
depth bb
instructions>>
[|
insn |
8 depth
^
insn
insn#>>
greedy-use-weights
get
set-at
insn
##copy?
[
insn
src>>
leader
:>
src insn
dst>>
leader
:>
dst src dst
=
[
]
[
dst insn
insn#>>
8 depth
^
3array
src
greedy-copy-hints
get
push-at
src insn
insn#>>
8 depth
^
3array
dst
greedy-copy-hints
get
push-at
]
if
]
when
]
each
]
each
;