[PATCH] D81023: CoroSplit: Fix coroutine splitting for retcon and retcon once

Arnold Schwaighofer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 2 12:05:18 PDT 2020


aschwaighofer created this revision.
Herald added subscribers: llvm-commits, mgrang, modocache, hiraditya.
Herald added a project: LLVM.
aschwaighofer added a reviewer: rjmccall.

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 have issues with casts
before the coro.begin and uses of those casts after the coro.begin)

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

rdar://60272809


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D81023

Files:
  llvm/lib/Transforms/Coroutines/CoroFrame.cpp
  llvm/test/Transforms/Coroutines/coro-retcon-frame.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D81023.267946.patch
Type: text/x-patch
Size: 6518 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200602/d9c6353a/attachment.bin>


More information about the llvm-commits mailing list