Handbook
Glossary
rename-value-flow-phis ( predecessor successor state snapshot -- state' )
Vocabulary
compiler
.
cfg
.
register-allocation
.
verifier
Inputs
predecessor
an
object
successor
an
object
state
an
object
snapshot
an
object
Outputs
state'
an
object
Definition
USING:
accessors
arrays
assocs
kernel
sequences
sets
;
IN:
compiler.cfg.register-allocation.verifier
::
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
;