Handbook
Glossary
eliminate-redundant-loads ( cfg -- changed? )
Vocabulary
compiler
.
cfg
.
memory-optimization
Inputs
cfg
an
object
Outputs
changed?
an
object
Definition
USING:
accessors
assocs
compiler.cfg.instructions
compiler.cfg.linearization
compiler.cfg.memory-optimization.private
compiler.cfg.rpo
kernel
math
namespaces
sequences
;
IN:
compiler.cfg.memory-optimization
::
eliminate-redundant-loads
( cfg -- changed? )
H{
{
"eliminated-loads"
0
}
}
clone
memory-optimization-statistics
set
cfg
cfg>insns
[
##slot-imm?
]
count
:>
loads loads
"loads"
memory-optimization-statistics
get
set-at
loads 1
>
[
[
cfg
entry>>
memory-entry
set
cfg
compute-memory-available-sets
cfg
reverse-post-order
[
kill-block?>>
]
reject
[
eliminate-memory-block
]
each
]
with-scope
]
when
memory-optimization-statistics
get
"eliminated-loads"
of
0
>
;