[llvm-dev] Efficient Green Thread Context-Switching

Jon Chesterfield via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 27 12:20:38 PDT 2020

> I propose that the LLVM devs consider adding “swapstack” and “newstack”
> into the LLVM project officially.

Thanks for the reference. I was going to suggest the 'preserve_none'
calling convention, applied to asm which does the stack pointer swapping,
would be equivalent to swapstack. However that calling convention doesn't
appear to exist - it would be one where the caller is required to save all
live values to the stack before jumping.

'preserve_none' may be a useful calling convention independent of green
threads. Functions which will always use all the available registers
benefit from not having to save/restore any of them, if the caller knew to
preserve any live values. A green thread context switch is roughly a call
that preserved nothing.

Newstack I'm not as sure about. Green thread libraries are likely to put a
lot of effort into how stacks are sized, allocated, reused. That seems
better as a runtime call.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200327/32bba9e9/attachment.html>

More information about the llvm-dev mailing list