alloca -package:resourcet
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.
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
Go through the comment_q in PState and remove all
comments that come after the given span