Handbook
Glossary
backtracking-allocation-with-registers ( cfg machine-regs -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
cfg
an
object
machine-regs
an
object
Outputs
None
Definition
USING:
assocs
compiler.cfg.linear-scan.allocation.state
compiler.cfg.linear-scan.checker
compiler.cfg.linear-scan.numbering
compiler.cfg.register-allocation.chordal.bases
compiler.cfg.register-allocation.spill-sites
compiler.cfg.register-allocation.ssa
compiler.cfg.register-allocation.ssa.phases
compiler.cfg.registers
compiler.cfg.ssa.destruction.leaders
kernel
namespaces
;
IN:
compiler.cfg.register-allocation.backtracking
::
backtracking-allocation-with-registers
( cfg machine-regs -- )
t
backtracking-phase-mode?
set
f
leader-map
set
cfg
construct-ssa-bases
cfg
compute-ssa-live-sets
representations
get
keys
[
dup
]
H{
}
map>assoc
leader-map
set
cfg
number-instructions
cfg
prepare-backtracking-affinities
cfg
prepare-backtracking-points
backtracking-loop-spills?
get
:>
cold-stores?
t
backtracking-loop-spills?
set
cfg
prepare-spill-sites
prepare-backtracking-phase-weights
cold-stores?
backtracking-loop-spills?
set
cfg
compute-phase-ssa-intervals
:>
input
check-allocation?
get
[
input
required-register-uses
]
[
f
]
if
:>
uses input machine-regs
backtracking-allocation
:>
intervals
check-allocation?
get
[
intervals machine-regs
check-allocated-intervals
intervals uses
check-register-uses
]
when
cfg intervals
check-phase-ssa-transports
intervals
prepare-backtracking-moves
cfg intervals
assign-backtracking-registers
cfg
resolve-ssa-data-flow
cfg
check-numbering
;