hanchenye-llvm-project/clang/test/CodeGenCoroutines
Gor Nishanov 04491bd8f3 [coroutines] Promote cleanup.dest.slot allocas to registers to avoid storing it in the coroutine frame
Summary:
We don't want to store cleanup dest slot saved into the coroutine frame (as some of the cleanup code may
access them after coroutine frame destroyed).

This is an alternative to https://reviews.llvm.org/D37093

It is possible to do this for all functions, but, cursory check showed that in -O0, we get slightly longer function (by 1-3 instructions), thus, we are only limiting cleanup.dest.slot elimination to coroutines.

Reviewers: rjmccall, hfinkel, eric_niebler

Reviewed By: eric_niebler

Subscribers: EricWF, cfe-commits

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

llvm-svn: 317981
2017-11-11 17:00:43 +00:00
..
Inputs [coroutines] [NFC] Add tests for return_void, unhandled_exception and promise dtor 2017-05-24 14:19:48 +00:00
coro-alloc.cpp [coroutines] Add support for deallocation elision 2017-05-23 04:21:27 +00:00
coro-await-domination.cpp CGCleanup: (NFC) add another test for r304335 - Don't try to spill static allocas 2017-06-01 01:15:25 +00:00
coro-await.cpp [coroutines] Support coroutine-handle returning await-suspend (i.e symmetric control transfer) 2017-08-25 04:46:54 +00:00
coro-builtins-err.c [coroutines] Adding builtins for coroutine intrinsics and backendutil support. 2016-10-03 22:44:48 +00:00
coro-builtins.c [coroutines] Replace all coro.frame builtins with an SSA value of coro.begin 2017-05-23 03:46:59 +00:00
coro-cleanup.cpp [coroutines] Add emission of initial and final suspends 2017-05-23 05:04:01 +00:00
coro-dest-slot.cpp [coroutines] Promote cleanup.dest.slot allocas to registers to avoid storing it in the coroutine frame 2017-11-11 17:00:43 +00:00
coro-eh-cleanup.cpp [coroutines] Fix coro-eh-cleanup.cpp test 2017-05-22 22:41:28 +00:00
coro-gro.cpp [coroutines] Implement correct GRO lifetime 2017-05-24 02:38:26 +00:00
coro-lambda.cpp [coroutines] Make generic lambda coroutines work 2017-05-24 15:44:57 +00:00
coro-params.cpp [coroutines] Fix rebuilding of dependent coroutine parameters 2017-06-03 00:22:18 +00:00
coro-promise-dtor.cpp [coroutines] [NFC] Add tests for return_void, unhandled_exception and promise dtor 2017-05-24 14:19:48 +00:00
coro-ret-void.cpp [coroutines] Evaluate the operand of void `co_return` expressions. 2017-07-31 07:48:13 +00:00
coro-return.cpp [coroutines] Add cleanup for compiler injected objects/allocations in coroutine body 2017-04-01 00:22:47 +00:00
coro-unhandled-exception.cpp [coroutines] [NFC] Add tests for return_void, unhandled_exception and promise dtor 2017-05-24 14:19:48 +00:00
microsoft-abi-operator-coawait.cpp