ECMA-335, I.12.3.2.4 states the following:
Part of each method state is a local memory pool. Memory can be explicitly allocated from the local memory pool using the
localloc
instruction. All memory in the local memory pool is reclaimed on method exit, and that is the only way local memory pool memory is reclaimed (there is no instruction provided to free local memory that was allocated during this method invocation). The local memory pool is used to allocate objects whose type or size is not known at compile time and which the programmer does not wish to allocate in the managed heap. Because the local memory pool cannot be shrunk during the lifetime of the method, a language implementation cannot use the local memory pool for general-purpose memory allocation.
Where does CLR allocate this memory pool? Is it managed heap, thread stack, etc?