llvm-project/llvm/test/Transforms/Coroutines
Gor Nishanov e29e94cf87 [coroutines] Add support for symmetric control transfer (musttail on coro.resumes followed by a suspend)
Summary:
Add musttail to any resume instructions that is immediately followed by a
suspend (i.e. ret). We do this even in -O0 to support guaranteed tail call
for symmetrical coroutine control transfer (C++ Coroutines TS extension).
This transformation is done only in the resume part of the coroutine that has
identical signature and calling convention as the coro.resume call.

Reviewers: GorNishanov

Reviewed By: GorNishanov

Subscribers: EricWF, majnemer, llvm-commits

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

llvm-svn: 311751
2017-08-25 02:25:10 +00:00
..
ArgAddr.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
coro-catchswitch.ll [coroutines] Handle spills before catchswitch 2017-05-17 03:09:22 +00:00
coro-cleanup.ll
coro-debug.ll Cloning: Fix debug info cloning 2017-05-27 19:41:09 +00:00
coro-early.ll
coro-eh-aware-edge-split.ll [coroutines] Handle unwind edge splitting 2017-05-16 14:11:39 +00:00
coro-elide.ll
coro-frame.ll [coroutines] Relocate instructions that maybe spilled after coro.begin 2017-05-25 00:46:20 +00:00
coro-heap-elide.ll
coro-materialize.ll [coroutines] Allow rematerialization upto 4 times. Remove incorrect assert 2017-05-24 23:01:02 +00:00
coro-spill-after-phi.ll [coroutines] Make CoroSplit pass deterministic 2017-04-08 00:49:46 +00:00
coro-spill-corobegin.ll [coroutines] CoroBegin from inner coroutines should be considered for spills 2017-08-23 14:47:52 +00:00
coro-split-00.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
coro-split-01.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
coro-split-02.ll [coroutines] PR33271: Remove stray coro.save intrinsics during CoroSplit 2017-06-02 02:18:36 +00:00
coro-split-dbg.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
coro-split-eh.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
coro-split-musttail.ll [coroutines] Add support for symmetric control transfer (musttail on coro.resumes followed by a suspend) 2017-08-25 02:25:10 +00:00
ex0.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
ex1.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
ex2.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
ex3.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
ex4.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
ex5.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
no-suspend.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
phi-coro-end.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
restart-trigger.ll [coroutines] Add handling for unwind coro.ends 2017-03-07 21:00:54 +00:00
smoketest.ll