llvm-project/llvm/test/Transforms/Coroutines
Chuanqi Xu 320e4efe99 [C++20] [Coroutines] Mark coroutine done if unhandled_exception throws
According to [dcl.fct.def.coroutine]/p14:
> If the evaluation of the expression promise.unhandled_­exception()
> exits via an exception, the coroutine is considered suspended at the
> final suspend point.

But this is not implemented in clang before. This patch would implement
this feature by marking the coroutine as done at the place of
coro.end(frame, /*InUnwindPath=*/true ).

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D115219
2021-12-09 14:58:06 +08:00
..
Inputs [coroutine] should disable inline before calling coro split 2020-12-08 08:53:08 -08:00
ArgAddr.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloc-with-param-O0.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloc-with-param-O2.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-01.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-02.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-03.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-04.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-05.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-06.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-07.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-08.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-alloca-09.ll [Coroutines] Ignore partial lifetime markers refer of an alloca 2021-10-22 09:49:50 +08:00
coro-async-addr-lifetime-infinite-loop-bug.ll [coro async] Don't use lifetime.start based alloca localization for ABI.Async/ABI.Retcon 2021-12-06 11:50:51 -08:00
coro-async-addr-lifetime-start-bug.ll [coro async] Disable lifetime.start sinking for ABI::Async and ABI::Retcon 2021-12-06 10:59:43 -08:00
coro-async-phi.ll Fix coro lowering of single predecessor phis 2021-07-06 10:22:25 -07:00
coro-async-remat.ll [coro] Correct CurrentBlock tracking bug recently introduced 2021-08-09 10:41:41 -07:00
coro-async-unreachable.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-async.ll [funcattrs] Fix a bug in recently introduced writeonly argument inference 2021-12-03 08:57:15 -08:00
coro-byval-param.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-catchswitch-cleanuppad.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-catchswitch.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-cleanup-lowering.ll
coro-cleanup.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-debug-O2.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-debug-coro-frame.ll [Coroutines] Define __coro_frame_ty in function scope 2021-06-25 12:33:20 -07:00
coro-debug-dbg.values-not_used_in_frame.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-debug-dbg.values.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-debug-frame-variable.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-debug.ll [Coroutines] Handle CallBrInst in SalvageDebugInfo 2021-12-06 22:55:05 +08:00
coro-early.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-eh-aware-edge-split-00.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-eh-aware-edge-split-01.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-eh-aware-edge-split-02.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-elide-musttail.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-elide-stat.ll [Coroutine] Record the elided coroutines 2021-07-27 13:14:09 +08:00
coro-elide.ll Revert "[Coroutine] Add statistics for the number of elided coroutine" 2021-06-30 10:22:45 -04:00
coro-frame-arrayalloca.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame-reuse-alloca-00.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame-reuse-alloca-01.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame-reuse-alloca-02.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame-reuse-alloca-03.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame-reuse-alloca-04.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame-reuse-alloca-05.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame-unreachable.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-frame.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-heap-elide.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-inline.ll [opt] Remove some legacy PM flags 2021-09-13 15:50:03 -07:00
coro-materialize.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-noalias-param.ll [Coroutine] Properly deal with byval and noalias parameters 2021-06-17 19:06:10 -07:00
coro-padding.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-param-copy.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-retcon-alloca.ll Coroutines: don't infer function attrs before lowering 2021-11-04 10:24:28 +00:00
coro-retcon-frame.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-retcon-once-private.ll Coro: Remove coro_end and coro_suspend_retcon in private unprocessed functions 2021-11-18 07:48:24 -08:00
coro-retcon-once-value.ll [Coroutines] Add the newly generated SCCs back to the CGSCC work queue after CoroSplit actually happened 2021-06-30 11:38:14 -07:00
coro-retcon-once-value2.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-retcon-resume-values.ll [Coroutines] Add the newly generated SCCs back to the CGSCC work queue after CoroSplit actually happened 2021-06-30 11:38:14 -07:00
coro-retcon-resume-values2.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-retcon-unreachable.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-retcon-value.ll [Coroutines] Add the newly generated SCCs back to the CGSCC work queue after CoroSplit actually happened 2021-06-30 11:38:14 -07:00
coro-retcon.ll Coroutines: don't infer function attrs before lowering 2021-11-04 10:24:28 +00:00
coro-spill-after-phi.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-spill-corobegin.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-spill-defs-before-corobegin.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-spill-promise.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-00.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-01.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
coro-split-02.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-alloc.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-dbg.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-eh-00.ll [C++20] [Coroutines] Mark coroutine done if unhandled_exception throws 2021-12-09 14:58:06 +08:00
coro-split-eh-01.ll [C++20] [Coroutines] Mark coroutine done if unhandled_exception throws 2021-12-09 14:58:06 +08:00
coro-split-hidden.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-musttail.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-musttail1.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-musttail2.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-musttail3.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-recursive.ll [Coroutines] Add the newly generated SCCs back to the CGSCC work queue after CoroSplit actually happened 2021-06-30 11:38:14 -07:00
coro-split-sink-lifetime-01.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-sink-lifetime-02.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-sink-lifetime-03.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-split-sink-lifetime-04.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
coro-swifterror.ll [Coroutines] Add the newly generated SCCs back to the CGSCC work queue after CoroSplit actually happened 2021-06-30 11:38:14 -07:00
coro-zero-alloca.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
ex0.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
ex1.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
ex2.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
ex3.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
ex4.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
ex5.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
no-suspend.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
phi-coro-end.ll [Coroutines] Remove all legacy test command 2021-06-25 09:46:55 -07:00
restart-trigger.ll [Coroutines] Add the newly generated SCCs back to the CGSCC work queue after CoroSplit actually happened 2021-06-30 11:38:14 -07:00
smoketest.ll [Coroutines] Add the newly generated SCCs back to the CGSCC work queue after CoroSplit actually happened 2021-06-30 11:38:14 -07:00