Handbook
Glossary
check-value-flow-output-constraints ( insn expected -- )
Vocabulary
compiler
.
cfg
.
register-allocation
.
verifier
Inputs
insn
an
object
expected
an
object
Outputs
None
Definition
USING:
accessors
compiler.cfg.def-use
compiler.cfg.instructions
compiler.cfg.linear-scan.live-intervals
kernel
sequences
sets
;
IN:
compiler.cfg.register-allocation.verifier
::
check-value-flow-output-constraints
( insn expected -- )
insn
defs-vregs
expected
outputs>>
[
rep>>
value-flow-locations
]
2map
concat
:>
outputs outputs
all-unique?
[
]
[
insn
invalid-allocation-operand-constraint
]
if
insn
clobber-insn?
[
]
[
insn
uses-vregs
expected
inputs>>
[
rep>>
value-flow-locations
]
2map
:>
inputs inputs
empty?
[
]
[
insn
def-is-use-insn?
[
inputs
concat
]
[
inputs
rest
concat
inputs
first
diff
]
if
:>
late outputs late
intersect
empty?
[
]
[
insn
invalid-allocation-operand-constraint
]
if
]
if
]
if
;