diff options
| author | Gor Nishanov <GorNishanov@gmail.com> | 2018-04-02 17:35:37 +0000 |
|---|---|---|
| committer | Gor Nishanov <GorNishanov@gmail.com> | 2018-04-02 17:35:37 +0000 |
| commit | 2a78fa5209ad5bf86dd29a9e75d12802ff907495 (patch) | |
| tree | a14ac5ef8aec21ff6a92d64e3b79a7e1928a60d8 /clang/test | |
| parent | 868112181b596ec4f310dc4442e93379d0217bdd (diff) | |
| download | bcm5719-llvm-2a78fa5209ad5bf86dd29a9e75d12802ff907495.tar.gz bcm5719-llvm-2a78fa5209ad5bf86dd29a9e75d12802ff907495.zip | |
[coroutines] Add __builtin_coro_noop => llvm.coro.noop
A recent addition to Coroutines TS (https://wg21.link/p0913) adds a pre-defined
coroutine noop_coroutine that does nothing. To implement this feature, we implemented
an llvm.coro.noop intrinsic that returns a coroutine handle to a coroutine that
does nothing when resumed or destroyed.
This patch adds a builtin __builtin_coro_noop() that maps to llvm.coro.noop intrinsic.
Related llvm change: https://reviews.llvm.org/D45114
llvm-svn: 328993
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGenCoroutines/coro-builtins.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/test/CodeGenCoroutines/coro-builtins.c b/clang/test/CodeGenCoroutines/coro-builtins.c index 9ec21476425..9800eef0ed8 100644 --- a/clang/test/CodeGenCoroutines/coro-builtins.c +++ b/clang/test/CodeGenCoroutines/coro-builtins.c @@ -17,6 +17,9 @@ void f(int n) { // CHECK-NEXT: call i1 @llvm.coro.alloc(token %[[COROID]]) __builtin_coro_alloc(); + // CHECK-NEXT: call i8* @llvm.coro.noop() + __builtin_coro_noop(); + // CHECK-NEXT: %[[SIZE:.+]] = call i64 @llvm.coro.size.i64() // CHECK-NEXT: %[[MEM:.+]] = call i8* @myAlloc(i64 %[[SIZE]]) // CHECK-NEXT: %[[FRAME:.+]] = call i8* @llvm.coro.begin(token %[[COROID]], i8* %[[MEM]]) |

