diff options
| author | Gor Nishanov <GorNishanov@gmail.com> | 2017-08-25 04:46:54 +0000 |
|---|---|---|
| committer | Gor Nishanov <GorNishanov@gmail.com> | 2017-08-25 04:46:54 +0000 |
| commit | 0f33300609a301650706022d03ec4433372796dd (patch) | |
| tree | d2166884cfbf041868ba862178efb445dec07e55 /llvm/utils/lit/tests/shtest-encoding.py | |
| parent | 43670975dd7b0ee8b500a48b6936f8bb68749b20 (diff) | |
| download | bcm5719-llvm-0f33300609a301650706022d03ec4433372796dd.tar.gz bcm5719-llvm-0f33300609a301650706022d03ec4433372796dd.zip | |
[coroutines] Support coroutine-handle returning await-suspend (i.e symmetric control transfer)
Summary:
If await_suspend returns a coroutine_handle, as in the example below:
```
coroutine_handle<> await_suspend(coroutine_handle<> h) {
coro.promise().waiter = h;
return coro;
}
```
suspensionExpression processing will resume the coroutine pointed at by that handle.
Related LLVM change rL311751 makes resume calls of this kind `musttail` at any optimization level.
This enables unlimited symmetric control transfer from coroutine to coroutine without blowing up the stack.
Reviewers: GorNishanov
Reviewed By: GorNishanov
Subscribers: rsmith, EricWF, cfe-commits
Differential Revision: https://reviews.llvm.org/D37131
llvm-svn: 311762
Diffstat (limited to 'llvm/utils/lit/tests/shtest-encoding.py')
0 files changed, 0 insertions, 0 deletions

