check-value-flow ( cfg snapshot -- )


Vocabulary
compiler.cfg.register-allocation.verifier

Inputs
cfgan object
snapshotan object


Outputs
None

Definition


:: 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 ;