Handbook
Glossary
number-insn ( insn -- )
Vocabulary
compiler
.
cfg
.
value-numbering
.
global
.
private
Inputs
insn
an
object
Outputs
None
Definition
IN:
compiler.cfg.value-numbering.global.private
GENERIC:
number-insn
( insn -- )
Methods
USING:
accessors
compiler.cfg.instructions
compiler.cfg.value-numbering.global.private
compiler.cfg.value-numbering.graph
kernel
;
M:
##copy
number-insn
[
src>>
vreg>vn
]
[
dst>>
]
bi
set-global-vn
;
USING:
accessors
assocs
compiler.cfg.instructions
compiler.cfg.value-numbering.global.private
compiler.cfg.value-numbering.graph
grouping
kernel
sequences
;
M:
##phi
number-insn
dup
inputs>>
values
[
vreg>vn
]
map
sift
dup
all-equal?
[
[
dst>>
]
[
?first
]
bi*
swap
set-global-vn
]
[
drop
dup
phi-expression
number-expression
]
if
;
USING:
compiler.cfg.value-numbering.expressions
compiler.cfg.value-numbering.global
compiler.cfg.value-numbering.global.private
kernel
;
M:
global-value-insn
number-insn
dup
>expr
number-expression
;
USING:
compiler.cfg.def-use
compiler.cfg.instructions
compiler.cfg.value-numbering.global.private
kernel
sequences
;
M:
insn
number-insn
defs-vregs
[
dup
set-global-vn
]
each
;