merge-entry-phi ( phi entering preheader -- )


Vocabulary
compiler.cfg.loop-optimization

Inputs
phian object
enteringan object
preheaderan object


Outputs
None

Definition


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