forked from OSchip/llvm-project
a263a60ad5
Summary: In the case below, %Result.i19 is defined between coro.save and coro.suspend and used after coro.suspend. We need to correctly place such a value into the coroutine frame. ``` %save = call token @llvm.coro.save(i8* null) %Result.i19 = getelementptr inbounds %"struct.lean_future<int>::Awaiter", %"struct.lean_future<int>::Awaiter"* %ref.tmp7, i64 0, i32 0 %suspend = call i8 @llvm.coro.suspend(token %save, i1 false) switch i8 %suspend, label %exit [ i8 0, label %await.ready i8 1, label %exit ] await.ready: %val = load i32, i32* %Result.i19 ``` Reviewers: majnemer Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D24418 llvm-svn: 282902 |
||
---|---|---|
.. | ||
ArgAddr.ll | ||
coro-cleanup.ll | ||
coro-early.ll | ||
coro-elide.ll | ||
coro-heap-elide.ll | ||
coro-split-00.ll | ||
coro-split-01.ll | ||
coro-split-02.ll | ||
coro-split-dbg.ll | ||
ex0.ll | ||
ex1.ll | ||
ex2.ll | ||
ex3.ll | ||
ex4.ll | ||
ex5.ll | ||
no-suspend.ll | ||
phi-coro-end.ll | ||
restart-trigger.ll | ||
smoketest.ll |