Handbook
Glossary
prepare-backtracking-points ( cfg -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
cfg
an
object
Outputs
None
Definition
USING:
accessors
arrays
assocs
compiler.cfg.instructions
compiler.cfg.linear-scan.live-intervals
compiler.cfg.linearization
compiler.cfg.register-allocation.ssa.phases
kernel
math
namespaces
sequences
;
IN:
compiler.cfg.register-allocation.backtracking
::
prepare-backtracking-points
( cfg -- )
H{
}
clone
backtracking-late-points
set
H{
}
clone
backtracking-point-blocks
set
H{
}
clone
backtracking-block-starts
set
V{
}
clone
backtracking-barriers
set
cfg
linearization-order
[|
bb |
bb
backtracking-phase-mode?
get
[
phase-block-from
]
[
block-from
]
if
:>
entry bb entry
backtracking-point-blocks
get
set-at
t
entry
backtracking-block-starts
get
set-at
bb
kill-block?>>
[
entry bb
block-to
backtracking-phase-mode?
get
[
1
+
]
when
2array
backtracking-barriers
get
push
]
when
bb
instructions>>
[|
insn |
insn
phase-split-insn?
[
t
insn
insn#>>
1
+
backtracking-late-points
get
set-at
]
when
bb insn
insn#>>
backtracking-point-blocks
get
set-at
bb insn
insn#>>
1
+
backtracking-point-blocks
get
set-at
insn
clobber-insn?
insn
gc-map-insn?
or
[
insn
insn#>>
dup
2array
backtracking-barriers
get
push
]
when
]
each
]
each
;