llvm-project/llvm/test/Transforms/Coroutines
Arnold Schwaighofer 2e4c5d1c48 CoroSplit: Fix coroutine splitting for retcon and retcon.once
Summary:
For retcon and retcon.once coroutines we assume that all uses of spills
can be sunk past coro.begin. This simplifies handling of instructions
that escape the address of an alloca.

The current implementation would have issues if the address of the
alloca is escaped before coro.begin. (It also has issues with casts before and
uses of those casts after the coro.begin instruction)

  %alloca_addr = alloca ...
  %escape  = ptrtoint %alloca_addr
  coro.begin
  store %escape to %alloca_addr

rdar://60272809

Subscribers: hiraditya, modocache, mgrang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81023
2020-06-03 12:10:58 -07:00
..
ArgAddr.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-alloc-with-param-O0.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-alloc-with-param-O2.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-catchswitch.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-cleanup-lowering.ll [Coroutines][4/6] New pass manager: coro-cleanup 2020-02-19 00:30:27 -05:00
coro-cleanup.ll [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
coro-debug-frame-variable.ll [Coroutines] Use dbg.declare for frame variables 2020-03-03 17:13:46 -05:00
coro-debug.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-early.ll [Coroutines][1/6] New pass manager: coro-early 2020-02-17 13:27:48 -05:00
coro-eh-aware-edge-split-00.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-eh-aware-edge-split-01.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-eh-aware-edge-split-02.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-elide.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-frame-arrayalloca.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-frame-unreachable.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-frame.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-heap-elide.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-materialize.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-padding.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-param-copy.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-retcon-alloca.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-retcon-frame.ll CoroSplit: Fix coroutine splitting for retcon and retcon.once 2020-06-03 12:10:58 -07:00
coro-retcon-once-value.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-retcon-once-value2.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-retcon-resume-values.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-retcon-resume-values2.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-retcon-value.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-retcon.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-spill-after-phi.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-spill-corobegin.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
coro-split-00.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-01.ll [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
coro-split-02.ll [Coroutines] Also check lifetime intrinsic for local variable when build 2020-03-24 13:41:55 +08:00
coro-split-alloc.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-dbg.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-eh-00.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-eh-01.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-hidden.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-musttail.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-musttail1.ll Re-land new pass manager coro-split and coro-elide 2020-02-19 00:11:23 -05:00
coro-split-musttail2.ll [Coroutines] Remove alignment check in shouldBeMustTail 2020-04-07 09:07:34 +08:00
coro-split-musttail3.ll [Coroutines 2/2] Improve symmetric control transfer feature 2020-03-30 09:53:09 +08:00
coro-swifterror.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
ex0.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
ex1.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
ex2.ll [Coroutines][New pass manager] Move CoroElide pass to right position 2020-03-01 21:48:24 +08:00
ex3.ll [Coroutines][New pass manager] Move CoroElide pass to right position 2020-03-01 21:48:24 +08:00
ex4.ll [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
ex5.ll Use optimal layout and preserve alloca alignment in coroutine frames. 2020-03-26 00:51:09 -04:00
no-suspend.ll [Coroutines] Fix PR45130 2020-03-20 11:27:08 +08:00
phi-coro-end.ll [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
restart-trigger.ll [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
smoketest.ll [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00