1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/lib/Transforms/Coroutines
Gor Nishanov 2f5f55d9bd [Coroutines] Part 10: Add coroutine promise support.
Summary:
1) CoroEarly now lowers llvm.coro.promise intrinsic that allows to obtain
a coroutine promise pointer from a coroutine frame and vice versa.

2) CoroFrame now interprets Promise argument of llvm.coro.begin to
place CoroutinPromise alloca at a deterministic offset from the coroutine frame.

Now, the coroutine promise example from docs\Coroutines.rst compiles and produces expected result (see test/Transform/Coroutines/ex4.ll).

Reviewers: majnemer

Subscribers: llvm-commits, mehdi_amini

Differential Revision: https://reviews.llvm.org/D23993

llvm-svn: 280184
2016-08-31 00:35:41 +00:00
..
CMakeLists.txt [Coroutines] Part 7: Split coroutine into subfunctions 2016-08-16 18:04:14 +00:00
CoroCleanup.cpp [Coroutines] Part 7: Split coroutine into subfunctions 2016-08-16 18:04:14 +00:00
CoroEarly.cpp [Coroutines] Part 10: Add coroutine promise support. 2016-08-31 00:35:41 +00:00
CoroElide.cpp [Coroutines] Part 9: Add cleanup subfunction. 2016-08-29 14:34:12 +00:00
CoroFrame.cpp [Coroutines] Part 10: Add coroutine promise support. 2016-08-31 00:35:41 +00:00
CoroInstr.h [Coroutines] Part 10: Add coroutine promise support. 2016-08-31 00:35:41 +00:00
CoroInternal.h [Coroutines] Part 10: Add coroutine promise support. 2016-08-31 00:35:41 +00:00
CoroSplit.cpp [Coroutines] Part 9: Add cleanup subfunction. 2016-08-29 14:34:12 +00:00
Coroutines.cpp [Coroutines] Part 10: Add coroutine promise support. 2016-08-31 00:35:41 +00:00
LLVMBuild.txt