Handbook
Glossary
propagate-before ( node -- )
Vocabulary
compiler
.
tree
.
propagation
.
nodes
Inputs
node
an
object
Outputs
None
Definition
IN:
compiler.tree.propagation.nodes
GENERIC:
propagate-before
( node -- )
Methods
USING:
compiler.tree
compiler.tree.propagation.nodes
compiler.tree.propagation.simple
;
M:
#alien-node
propagate-before
propagate-alien-invoke
;
USING:
compiler.tree
compiler.tree.propagation.info
compiler.tree.propagation.nodes
compiler.tree.propagation.recursive
kernel
;
M:
#call-recursive
propagate-before
[
[
]
[
latest-input-infos
]
[
recursive-phi-infos
]
tri
check-fixed-point
]
[
[
[
]
[
return-infos
]
[
node-output-infos
]
tri
[
check-fixed-point
]
[
drop
save-return-infos
]
3bi
]
unless-loop
]
bi
;
USING:
accessors
combinators
compiler.tree
compiler.tree.propagation.info
compiler.tree.propagation.inlining
compiler.tree.propagation.nodes
compiler.tree.propagation.simple
kernel
;
M:
#call
propagate-before
dup
word>>
{
{
[
2dup
foldable-call?
]
[
fold-call
]
}
{
[
2dup
do-inlining
]
[
[
output-value-infos
]
[
drop
out-d>>
]
2bi
refine-value-infos
]
}
[
[
[
output-value-infos
]
[
drop
out-d>>
]
2bi
set-value-infos
]
[
compute-constraints
]
2bi
]
}
cond
;
USING:
accessors
assocs
compiler.tree
compiler.tree.propagation.info
compiler.tree.propagation.nodes
kernel
stack-checker.dependencies
;
M:
#declare
propagate-before
declaration>>
[
[
add-depends-on-class
]
[
<class-info>
swap
refine-value-info
]
bi
]
assoc-each
;
USING:
accessors
compiler.tree
compiler.tree.propagation.info
compiler.tree.propagation.nodes
kernel
sequences
;
M:
#introduce
propagate-before
out-d>>
[
object-info
swap
set-value-info
]
each
;
USING:
accessors
compiler.tree
compiler.tree.propagation.branches
compiler.tree.propagation.nodes
kernel
sequences
;
M:
#phi
propagate-before
[
annotate-phi-inputs
]
[
[
phi-info-d>>
flip
]
[
out-d>>
]
bi
merge-value-infos
]
bi
;
USING:
accessors
compiler.tree
compiler.tree.propagation.info
compiler.tree.propagation.nodes
kernel
sequences
;
M:
#push
propagate-before
[
literal>>
<literal-info>
]
[
out-d>>
first
]
bi
set-value-info
;
USING:
compiler.tree
compiler.tree.propagation.info
compiler.tree.propagation.nodes
compiler.tree.propagation.recursive
kernel
;
M:
#return-recursive
propagate-before
[
[
]
[
latest-input-infos
]
[
node-input-infos
]
tri
check-fixed-point
]
unless-loop
;
USING:
compiler.tree
compiler.tree.propagation.nodes
kernel
;
M:
node
propagate-before
drop
;