Handbook
Glossary
#alien-callback
High-level optimizer operating on lexical tree SSA IR
Prev:
#alien-assembly
Next:
#branch
Vocabulary
compiler
.
tree
Class description
SSA tree node that constructs an alien callback. It is not a subclass of
#alien-node
.
Definition
IN:
compiler.tree
TUPLE:
#alien-callback
<
node
params child
;
Methods
USING:
accessors
compiler.tree
compiler.tree.checker
;
M:
#alien-callback
check-stack-flow*
child>>
check-stack-flow
;
USING:
accessors
compiler.tree
compiler.tree.cleanup
;
M:
#alien-callback
cleanup-tree*
[
cleanup-tree
]
change-child
;
USING:
accessors
compiler.cfg
compiler.cfg.builder
compiler.cfg.builder.alien
compiler.tree
kernel
namespaces
;
M:
#alien-callback
emit-node
dup
params>>
xt>>
dup
[
t
cfg
get
frame-pointer?<<
begin-word
over
params>>
emit-callback-inputs
over
child>>
emit-callback-body
[
swap
params>>
emit-callback-outputs
]
keep
[
end-word
drop
]
when*
]
with-cfg-builder
;
USING:
accessors
compiler.tree
compiler.tree.escape-analysis.nodes
;
M:
#alien-callback
escape-analysis*
child>>
(escape-analysis)
;
USING:
accessors
compiler.tree
compiler.tree.recursive.private
;
M:
#alien-callback
node-call-graph
child>>
(build-call-graph)
;
USING:
compiler.tree
compiler.tree.def-use
kernel
;
M:
#alien-callback
node-defs-values
drop
f
;
USING:
compiler.tree
compiler.tree.def-use
kernel
;
M:
#alien-callback
node-uses-values
drop
f
;
USING:
accessors
compiler.tree
compiler.tree.debugger
kernel
make
;
M:
#alien-callback
node>quot
[
params>>
,
]
[
child>>
nodes>quot
,
]
bi
#alien-callback
,
;
USING:
accessors
compiler.tree
compiler.tree.normalization
;
M:
#alien-callback
normalize*
[
normalize
]
change-child
;
USING:
accessors
compiler.tree
compiler.tree.propagation.nodes
;
M:
#alien-callback
propagate-around
child>>
(propagate)
;
USING:
accessors
compiler.tree
compiler.tree.dead-code.liveness
;
M:
#alien-callback
remove-dead-code*
[
(remove-dead-code)
]
change-child
;
USING:
compiler.tree
compiler.tree.normalization.renaming
;
M:
#alien-callback
rename-node-values*
;
USING:
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#alien-callback
unbox-tuples*
;