alloca
alloca f executes the computation
f, passing
as argument a pointer to a temporarily allocated block of memory
sufficient to hold values of type
a.
The memory is freed when
f terminates (either normally or via
an exception), so the pointer passed to
f must
not be
used after this.
Allocate amount * sizeof(tp) bytes on the stack * tp: LlvmType to
reserve room for * amount: The nr of tp's which must be allocated
allocaBytes n f executes the computation
f,
passing as argument a pointer to a temporarily allocated block of
memory of
n bytes. The block of memory is sufficiently
aligned for any of the basic foreign types that fits into a memory
block of the allocated size.
The memory is freed when
f terminates (either normally or via
an exception), so the pointer passed to
f must
not be
used after this.
allocaBytesAligned size align f executes the
computation
f, passing as argument a pointer to a temporarily
allocated block of memory of
size bytes and aligned to
align bytes. The value of
align must be a power of
two.
The memory is freed when
f terminates (either normally or via
an exception), so the pointer passed to
f must
not be
used after this.
Temporarily allocate space for the given number of elements (like
alloca, but for multiple elements).
Like
allocaArray, but add an extra position to hold a special
termination element.
Allocate a resource and register an action with the
MonadResource to free the resource.
Perform some allocation, and automatically register a cleanup action.
This is almost identical to calling the allocation and then
registering the release action, but this properly handles
masking of asynchronous exceptions.
Since 0.3.0
Perform some allocation where the return value is not required, and
automatically register a cleanup action.
allocate_ is to allocate as bracket_ is to
bracket
This is almost identical to calling the allocation and then
registering the release action, but this properly handles
masking of asynchronous exceptions.
Allocating a buffer with malloc().
Registers available to the register allocator.
These are all registers minus those with a fixed role in RISCV ABI
(zero, lr, sp, gp, tp, fp, tmp) and GHC RTS (Base, Sp, Hp, HpLim,
R1..R8, F1..F6, D1..D6.)
Set corresponding register bit to 0
Go through the comment_q in PState and remove all
comments that belong within the given span