Handbook
Glossary
#return-recursive
High-level optimizer operating on lexical tree SSA IR
Prev:
#return
Next:
#terminate
Vocabulary
compiler
.
tree
Definition
IN:
compiler.tree
TUPLE:
#return-recursive
<
#renaming
in-d out-d label info
;
Methods
USING:
accessors
compiler.tree
compiler.tree.def-use.simplified
kernel
sequences
;
M:
#return-recursive
actually-used-by*
[
in-d>>
index
]
keep
[
out-d>>
nth
(actually-used-by)
]
[
label>>
calls>>
[
node>>
out-d>>
nth
(actually-used-by)
]
with
each
]
2bi
;
USING:
accessors
compiler.tree
compiler.tree.propagation.nodes
kernel
;
M:
#return-recursive
annotate-node
dup
in-d>>
(annotate-node)
;
USING:
arrays
compiler.tree
compiler.tree.checker
;
M:
#return-recursive
check-node*
inputs/outputs
2array
check-lengths
;
USING:
compiler.tree
compiler.tree.checker
kernel
;
M:
#return-recursive
check-stack-flow*
[
check-in-d
]
[
check-out-d
]
bi
;
USING:
accessors
compiler.tree
compiler.tree.dead-code.liveness
compiler.tree.dead-code.simple
kernel
;
M:
#return-recursive
compute-live-values*
[
out-d>>
]
[
in-d>>
]
bi
look-at-mapping
;
USING:
accessors
compiler.tree
compiler.tree.cleanup
kernel
;
M:
#return-recursive
delete-node
label>>
f
>>return
drop
;
USING:
accessors
assocs
compiler.cfg.builder
compiler.tree
kernel
namespaces
;
M:
#return-recursive
emit-node
label>>
id>>
loops
get
key?
[
]
[
end-word
]
if
;
USING:
accessors
compiler.tree
compiler.tree.escape-analysis.allocations
compiler.tree.escape-analysis.nodes
disjoint-sets
generic
kernel
namespaces
sequences
;
M:
#return-recursive
escape-analysis*
[
M\
#return-recursive
escape-analysis*
(call-next-method)
]
[
[
in-d>>
]
[
label>>
calls>>
]
bi
[
node>>
out-d>>
escaping-values
get
[
equate
]
curry
2each
]
with
each
]
bi
;
USING:
accessors
compiler.tree
kernel
;
M:
#return-recursive
inputs/outputs
[
in-d>>
]
[
out-d>>
]
bi
;
USING:
accessors
compiler.tree
compiler.tree.recursive.private
kernel
;
M:
#return-recursive
node-call-graph
nip
dup
label>>
return<<
;
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.dead-code.liveness
;
M:
#return-recursive
remove-dead-code*
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#return-recursive
unbox-tuples*
[
flatten-values
]
change-in-d
[
flatten-values
]
change-out-d
;