Handbook
Glossary
merge-entry-phi ( phi entering preheader -- )
Vocabulary
compiler
.
cfg
.
loop-optimization
Inputs
phi
an
object
entering
an
object
preheader
an
object
Outputs
None
Definition
USING:
accessors
assocs
compiler.cfg.instructions
compiler.cfg.registers
grouping
kernel
sequences
;
IN:
compiler.cfg.loop-optimization
::
merge-entry-phi
( phi entering preheader -- )
phi
inputs>>
[
entering
member-eq?
]
filter-keys
:>
incoming incoming
values
all-equal?
[
incoming
values
first
]
[
next-vreg
:>
fresh fresh incoming
##phi
new-insn
preheader
instructions>>
push
fresh
]
if
:>
value phi
inputs>>
[
entering
member-eq?
not
]
filter-keys
H{
}
assoc-clone-like
:>
remaining value preheader remaining
set-at
remaining phi
inputs<<
;