Handbook
Glossary
split-branches ( cfg -- )
Vocabulary
compiler
.
cfg
.
branch-splitting
Inputs
cfg
an
object
Outputs
None
Definition
USING:
accessors
combinators
compiler.cfg
compiler.cfg.predecessors
compiler.cfg.rpo
deques
kernel
namespaces
sequences
;
IN:
compiler.cfg.branch-splitting
:
split-branches
( cfg -- )
{
[
needs-predecessors
]
[
init-worklist
]
[
post-order
drop
worklist
get
[
dup
split-branch?
[
dup
split-branch
]
when
successors>>
[
add-to-worklist
]
each
]
slurp-deque
]
[
cfg-changed
]
}
cleave
;