Handbook
Glossary
check-value-flow ( cfg snapshot -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
verifier
Inputs
cfg
an
object
snapshot
an
object
Outputs
None
Definition
USING:
assocs
compiler.cfg.predecessors
compiler.cfg.rpo
kernel
sequences
;
IN:
compiler.cfg.register-allocation.verifier
::
check-value-flow
( cfg snapshot -- )
cfg
needs-predecessors
cfg snapshot
check-value-flow-presence
cfg
reverse-post-order
:>
blocks
H{
}
clone
:>
states
t
:>
changed!
[
changed
]
[
f
changed! blocks
[|
bb |
bb cfg states snapshot
incoming-value-flow-state
[|
incoming |
bb incoming snapshot
f
transfer-value-flow-block
:>
outgoing outgoing bb states
at
=
[
]
[
outgoing bb states
set-at
t
changed!
]
if
]
when*
]
each
]
while
blocks
[|
bb |
bb cfg states snapshot
incoming-value-flow-state
[|
incoming |
bb incoming snapshot
t
transfer-value-flow-block
drop
]
when*
]
each
;