Handbook
Glossary
optimize-one-loop ( cfg header -- )
Vocabulary
compiler
.
cfg
.
loop-optimization
Inputs
cfg
an
object
header
an
object
Outputs
None
Definition
USING:
assocs
compiler.cfg.def-use
compiler.cfg.dominance
compiler.cfg.loop-detection
kernel
namespaces
sequences
;
IN:
compiler.cfg.loop-optimization
::
optimize-one-loop
( cfg header -- )
cfg
needs-loops
cfg
needs-dominance
cfg
compute-defs
header
loops
get
at
:>
loop loop
[
loop
supported-loop?
[
loop
loop-entering-blocks
:>
entering entering
empty?
[
]
[
cfg loop
loop-hoist-candidates
:>
chosen chosen
empty?
[
]
[
loop entering
loop-preheader
:>
preheader cfg loop chosen preheader
move-loop-instructions
"productive-loops"
count-loop-event
]
if
]
if
]
when
]
when
;