1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/lib/Transforms
Gor Nishanov 37bbef4980 [Coroutines]: Part6b: Add coro.id intrinsic.
Summary:
1. Make coroutine representation more robust against optimization that may duplicate instruction by introducing coro.id intrinsics that returns a token that will get fed into coro.alloc and coro.begin. Due to coro.id returning a token, it won't get duplicated and can be used as reliable indicator of coroutine identify when a particular coroutine call gets inlined.
2. Move last three arguments of coro.begin into coro.id as they will be shared if coro.begin will get duplicated.
3. doc + test + code updated to support the new intrinsic.

Reviewers: mehdi_amini, majnemer

Subscribers: mehdi_amini, llvm-commits

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

llvm-svn: 278481
2016-08-12 05:45:49 +00:00
..
Coroutines [Coroutines]: Part6b: Add coro.id intrinsic. 2016-08-12 05:45:49 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
InstCombine Use the range variant of find/find_if instead of unpacking begin/end 2016-08-12 03:55:06 +00:00
Instrumentation Fix some Clang-tidy modernize and Include What You Use warnings. 2016-08-11 17:20:18 +00:00
IPO WholeProgramDevirt: initialize WasDevirt in all constructors. 2016-08-12 01:40:10 +00:00
ObjCARC Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
Scalar Use the range variant of transform instead of unpacking begin/end 2016-08-12 04:32:42 +00:00
Utils Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
Vectorize Use the range variant of find/find_if instead of unpacking begin/end 2016-08-12 03:55:06 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00