Handbook
Glossary
cleanup-tree* ( node -- node/nodes )
Vocabulary
compiler
.
tree
.
cleanup
Inputs
node
a
node
Outputs
node/nodes
a node or a sequence of nodes
Word description
Runs the cleanup pass for an SSA node.
Definition
IN:
compiler.tree.cleanup
GENERIC:
cleanup-tree*
( node -- node/nodes )
Methods
USING:
accessors
compiler.tree
compiler.tree.cleanup
;
M:
#alien-callback
cleanup-tree*
[
cleanup-tree
]
change-child
;
USING:
accessors
combinators
compiler.tree
compiler.tree.cleanup
namespaces
;
M:
#branch
cleanup-tree*
{
[
delete-unreachable-branches
]
[
cleanup-children
]
[
fold-only-branch
]
[
live-branches>>
live-branches
set
]
}
cleave
;
USING:
accessors
combinators
compiler.tree
compiler.tree.cleanup
kernel
;
M:
#call
cleanup-tree*
{
{
[
dup
body>>
]
[
cleanup-inlining
]
}
{
[
dup
cleanup-folding?
]
[
cleanup-folding
]
}
{
[
dup
remove-overflow-check?
]
[
remove-overflow-check
]
}
[
]
}
cond
;
USING:
accessors
compiler.tree
compiler.tree.cleanup
compiler.tree.combinators
kernel
namespaces
;
M:
#phi
cleanup-tree*
live-branches
get
[
[
sift-children
]
curry
change-phi-in-d
]
[
[
sift-children
]
curry
change-phi-info-d
]
[
[
sift-children
]
curry
change-terminated
]
tri
eliminate-phi
live-branches
off
;
USING:
accessors
compiler.tree
compiler.tree.cleanup
kernel
sequences
;
M:
#recursive
cleanup-tree*
[
cleanup-tree
]
change-child
dup
label>>
calls>>
empty?
[
flatten-recursive
]
when
;
USING:
compiler.tree
compiler.tree.cleanup
;
M:
node
cleanup-tree*
;