rename-value-flow-phis ( predecessor successor state snapshot -- state' )


Vocabulary
compiler.cfg.register-allocation.verifier

Inputs
predecessoran object
successoran object
statean object
snapshotan object


Outputs
state'an object


Definition


:: rename-value-flow-phis
( predecessor successor state snapshot -- state' )
successor snapshot phis>> at :> phis phis empty?
[ state ] [
predecessor snapshot original-value-flow-predecessor
:> original phis
[ first snapshot aliases>> value-flow-root ] map
:> destinations phis [| phi |
original phi second ?at
[ ] [ original successor invalid-allocation-edge ]
if snapshot aliases>> value-flow-root
phi first snapshot aliases>> value-flow-root 2array
] map :> renames state [| location values |
location values destinations diff renames [| pair |
pair first values member?
[ pair second suffix ] when
] each members
] assoc-map
] if ;