[gomp4 11/14] libgomp: avoid variable-length stack allocation in team.c
Bernd Schmidt
bschmidt@redhat.com
Tue Oct 20 20:48:00 GMT 2015
On 10/20/2015 08:34 PM, Alexander Monakov wrote:
> NVPTX does not support alloca or variable-length stack allocations, thus
> heap allocation needs to be used instead. I've opted to make this a generic
> change instead of guarding it with an #ifdef: libgomp usually leaves thread
> stack size up to libc, so avoiding unbounded stack allocation makes sense.
>
> * task.c (GOMP_task): Use a fixed-size on-stack buffer or a heap
> allocation instead of a variable-size on-stack allocation.
> + char buf_fixed[2048], *buf = buf_fixed;
This might also not be the best of ideas on a GPU - the stack size isn't
all that unlimited, what with there being lots of threads. If I do
size_t stack, heap;
cuCtxGetLimit (&stack, CU_LIMIT_STACK_SIZE);
in the nvptx-run program we've used for testing, it shows a default
stack size of just 1kB.
Bernd
More information about the Gcc-patches
mailing list