Handbook
Glossary
(merge-allocations) ( values -- allocation )
Vocabulary
compiler
.
tree
.
escape-analysis
.
branches
Inputs
values
an
object
Outputs
allocation
an
object
Definition
USING:
compiler.tree.escape-analysis.allocations
grouping
kernel
sequences
;
IN:
compiler.tree.escape-analysis.branches
:
(merge-allocations)
( values -- allocation )
[
dup
[
allocation
]
map
sift
[
drop
f
]
[
dup
[
t
eq?
not
]
all?
[
dup
[
length
]
map
all-equal?
[
nip
flip
[
(merge-allocations)
]
[
~quotation~
map
]
bi
[
record-allocations
]
keep
]
[
drop
add-escaping-values
t
]
if
]
[
drop
add-escaping-values
t
]
if
]
if-empty
]
map
;