[Coroutines] Part 8: Coroutine Frame Building algorithm
authorGor Nishanov <GorNishanov@gmail.com>
Wed, 24 Aug 2016 04:44:35 +0000 (04:44 +0000)
committerGor Nishanov <GorNishanov@gmail.com>
Wed, 24 Aug 2016 04:44:35 +0000 (04:44 +0000)
commit241b041fbad8e776f6eab3644d9679264f762afd
tree58ed9efd832b16e296d0f838b82a68a5d437173f
parent9c84859075e8dc415cfc012132ffd56c38b730e9
[Coroutines] Part 8: Coroutine Frame Building algorithm

Summary:
This patch adds coroutine frame building algorithm. Now, simple coroutines such as ex0.ll and ex1.ll (first examples from docs\Coroutines.rst can be compiled).

Documentation and overview is here: http://llvm.org/docs/Coroutines.html.

Upstreaming sequence (rough plan)
1.Add documentation. (https://reviews.llvm.org/D22603)
2.Add coroutine intrinsics. (https://reviews.llvm.org/D22659)
...

7. Split coroutine into subfunctions. (https://reviews.llvm.org/D23461)
8. Coroutine Frame Building algorithm  <= we are here
9. Add f.cleanup subfunction.
10+. The rest of the logic

Reviewers: majnemer

Subscribers: mehdi_amini, llvm-commits

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

llvm-svn: 279609
llvm/lib/Transforms/Coroutines/CoroFrame.cpp
llvm/test/Transforms/Coroutines/ex0.ll [new file with mode: 0644]
llvm/test/Transforms/Coroutines/ex1.ll [new file with mode: 0644]
llvm/test/Transforms/Coroutines/smoketest.ll