Handbook
Glossary
##local-allot
Basic block instructions
Prev:
##check-nursery-branch
Next:
##save-context
Vocabulary
compiler
.
cfg
.
instructions
Class description
An instruction for allocating memory in the words own stack frame. It's mostly used for receiving data from alien calls. It has the following slots:
dst
Register into which a pointer to the stack allocated memory is put.
size
Number of bytes to allocate.
offset
See also
##allot
Definition
IN:
compiler.cfg.instructions
TUPLE:
##local-allot
<
flushable-insn
dst size align offset insn#
;
Methods
USING:
accessors
compiler.cfg.gvn.avail
compiler.cfg.instructions
kernel
;
M:
##local-allot
>avail-insn-defs
[
]
change-dst
drop
;
USING:
accessors
compiler.cfg.instructions
compiler.cfg.linear-scan.assignment
kernel
;
M:
##local-allot
assign-insn-defs
[
vreg>reg
]
change-dst
drop
;
USING:
accessors
compiler.cfg.build-stack-frame
compiler.cfg.instructions
kernel
math
math.order
namespaces
;
M::
##local-allot
compute-stack-frame*
( insn -- ? )
insn
size>>
:>
s insn
align>>
:>
a
allot-area-align
[
a
max
]
change
allot-area-size
[
a
align
[
insn
offset<<
]
[
s
+
]
bi
]
change
t
;
USING:
accessors
compiler.cfg.instructions
compiler.cfg.representations.rewrite
kernel
;
M:
##local-allot
convert-insn-defs
[
converted-value
]
change-dst
drop
;
USING:
compiler.cfg.instructions
compiler.cfg.representations.preferred
cpu.architecture
kernel
;
M:
##local-allot
defs-vreg-reps
drop
{
int-rep
}
;
USING:
accessors
arrays
compiler.cfg.def-use
compiler.cfg.instructions
;
M:
##local-allot
defs-vregs
dst>>
1array
;
USING:
accessors
compiler.cfg.instructions
compiler.codegen
cpu.architecture
kernel
;
M:
##local-allot
generate-insn
[
dst>>
]
keep
[
size>>
]
keep
[
align>>
]
keep
[
offset>>
]
keep
drop
%local-allot
;
USING:
accessors
compiler.cfg.instructions
compiler.cfg.renaming
kernel
;
M:
##local-allot
rename-insn-defs
[
rename-value
]
change-dst
drop
;
USING:
accessors
compiler.cfg.instructions
compiler.cfg.ssa.construction.private
kernel
;
M:
##local-allot
ssa-rename-insn-defs
[
gen-name
]
change-dst
drop
;