Handbook
Glossary
create-loop-preheader ( loop entering -- preheader )
Vocabulary
compiler
.
cfg
.
loop-optimization
Inputs
loop
an
object
entering
an
object
Outputs
preheader
an
object
Definition
USING:
accessors
compiler.cfg
compiler.cfg.instructions
compiler.cfg.utilities
kernel
sequences
;
IN:
compiler.cfg.loop-optimization
::
create-loop-preheader
( loop entering -- preheader )
<basic-block>
:>
preheader loop
header>>
:>
header header
[
entering preheader
merge-entry-phi
]
each-phi
##branch
new-insn
preheader
instructions>>
push
V{
header
}
preheader
successors<<
entering
V{
}
like
preheader
predecessors<<
entering
[|
pred | pred header preheader
update-successors
]
each
header
predecessors>>
[
entering
member-eq?
not
]
filter
preheader
suffix!
header
predecessors<<
"preheaders"
count-loop-event
preheader
;