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 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
CoroCleanup.cpp | ||
CoroEarly.cpp | ||
CoroElide.cpp | ||
CoroFrame.cpp | ||
CoroInstr.h | ||
CoroInternal.h | ||
CoroSplit.cpp | ||
Coroutines.cpp | ||
LLVMBuild.txt |