llvm-project/llvm/lib/Transforms/Coroutines
Gor Nishanov ccabaca273 [Coroutines] Part12: Handle alloca address-taken
Summary:
Move early uses of spilled variables after CoroBegin.

For example, if a parameter had address taken, we may end up with the code
like:
        define @f(i32 %n) {
          %n.addr = alloca i32
          store %n, %n.addr
          ...
          call @coro.begin

This patch fixes the problem by moving uses of spilled variables after CoroBegin.

Reviewers: majnemer

Subscribers: mehdi_amini, llvm-commits

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

llvm-svn: 280678
2016-09-05 23:45:45 +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] Part11: Add final suspend handling. 2016-09-05 04:44:30 +00:00
CoroElide.cpp [Coroutines] Part 9: Add cleanup subfunction. 2016-08-29 14:34:12 +00:00
CoroFrame.cpp [Coroutines] Part12: Handle alloca address-taken 2016-09-05 23:45:45 +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] Part11: Add final suspend handling. 2016-09-05 04:44:30 +00:00
Coroutines.cpp [Coroutines] Part11: Add final suspend handling. 2016-09-05 04:44:30 +00:00
LLVMBuild.txt