On Mon, 30 Nov 2015, Jakub Jelinek wrote: > Does it really have to be a full multilib? I mean, the only precondition is > that something sets up the var, right? Would the OpenACC folks be willing > to set it up too? For stuff like libc, functions that are ECF_LEAF builtins > IMHO really don't care whether they are built as -msoft-stack or not, they > shouldn't be passing addresses of local vars to code that could use OpenMP. > The only question is if say qsort or other functions that call user callbacks > could be passing addresses of local vars to those callbacks, or whether they > only pass addresses passed from callers, or addresses of heap objects.
Well, in that full multilib there's also a second option enabled, to handle atomics/syscalls outside of simd regions, where the cost is additional code in the prologue, and one "shuffle" instruction after each atomic/syscall. It doesn't have to be a multilib, but doing it as a multilib is a safe choice w.r.t OpenACC work. Alexander