Handbook
Glossary
reload-value ( value -- version )
Vocabulary
compiler
.
cfg
.
register-allocation
.
chordal
.
spilling
Inputs
value
an
object
Outputs
version
an
object
Definition
USING:
accessors
assocs
combinators
compiler.cfg.instructions
compiler.cfg.register-allocation.rematerialization
compiler.cfg.registers
kernel
namespaces
sequences
;
IN:
compiler.cfg.register-allocation.chordal.spilling
::
reload-value
( value -- version )
value
spill-S
get
key?
value
rematerialization-of
>boolean
or
[
]
[
value
missing-spill-value
]
if
value
rep-of
next-vreg-rep
:>
version value
memory-location
:>
location location
constant-recipe?
[
##load-integer
new
version
>>dst
location
val>>
>>val
:>
insn
rematerialization-observer
get
[
location
original-insn>>
insn
rot
( original insn -- )
call-effect
]
when*
"loads"
rematerialization-statistics
get
inc-at
insn
]
[
##reload
new
version
>>dst
value
rep-of
>>rep
location
>>src
]
if
spill-output
get
push
"reload-definitions"
spill-stat
version
;