Handbook
Glossary
transfer-value-flow-insn ( insn state snapshot checking? -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
verifier
Inputs
insn
an
object
state
an
object
snapshot
an
object
checking?
an
object
Outputs
None
Definition
USING:
accessors
arrays
assocs
combinators
compiler.cfg.instructions
compiler.cfg.linear-scan.live-intervals
cpu.architecture
kernel
math
;
IN:
compiler.cfg.register-allocation.verifier
::
transfer-value-flow-insn
( insn state snapshot checking? -- )
insn snapshot
instructions>>
at
:>
expected expected checking?
and
[
expected
constant>>
integer?
[
insn
##load-integer?
[
expected
constant>>
insn
val>>
=
]
[
f
]
if
[
]
[
insn insn
invalid-allocation-rematerialization
]
if
]
when
insn expected state snapshot
check-value-flow-inputs
insn expected
check-value-flow-temps
insn expected
check-value-flow-output-constraints
insn expected state snapshot
check-value-flow-roots
]
when
{
{
[
insn
value-flow-copy?
]
[
insn state snapshot
transfer-value-flow-copy
]
}
{
[
insn
##spill?
insn
##reload?
or
]
[
insn state snapshot
transfer-value-flow-copy
]
}
{
[
expected
>boolean
]
[
insn
gc-map-insn?
[
insn expected state snapshot
relocate-value-flow-roots
]
when
insn
clobber-insn?
insn
gc-check-insn?
or
insn
##call?
or
[
state
value-flow-clobber
]
when
insn expected state
forget-value-flow-temps
insn expected state snapshot
define-value-flow-outputs
]
}
{
[
insn
##branch?
]
[
]
}
{
[
insn
##load-reference?
]
[
insn
obj>>
[
insn
unexpected-allocation-instruction
]
when
value-flow-false
1array
insn
dst>>
tagged-rep
state
value-flow-write
]
}
[
insn
unexpected-allocation-instruction
]
}
cond
;