Handbook
Glossary
prepare-backtracking-affinities ( cfg -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
cfg
an
object
Outputs
None
Definition
USING:
accessors
arrays
assocs
compiler.cfg.def-use
compiler.cfg.instructions
compiler.cfg.linearization
kernel
namespaces
sequences
;
IN:
compiler.cfg.register-allocation.backtracking
::
prepare-backtracking-affinities
( cfg -- )
V{
}
clone
:>
affinities cfg
cfg>insns
[|
insn |
insn
##phi?
[
insn
inputs>>
values
[
insn
dst>>
2array
affinities
push
]
each
]
[
insn
uses-vregs
:>
inputs insn
defs-vregs
:>
outputs
inputs
empty?
not
outputs
length
1
=
and
[
inputs
first
outputs
first
2array
affinities
push
]
when
]
if
]
each
affinities
backtracking-affinities
set
;