[PATCH] D71898: [Coroutines][1/6] New pass manager: coro-early

Brian Gesiak via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 26 06:26:22 PST 2019


modocache created this revision.
modocache added reviewers: GorNishanov, lewissbaker, junparser, chandlerc.
Herald added a reviewer: deadalnix.
Herald added subscribers: hiraditya, EricWF.
Herald added a project: LLVM.

The first in a series of patches that ports the LLVM coroutines passes
to the new pass manager infrastructure. This patch implements
'coro-early'.

NB: All coroutines passes begin by checking that coroutine intrinsics are
declared within the LLVM IR module they're operating on. To do so, they call
`coro::declaresIntrinsics`. The next 3 patches in this series, which add new
pass manager implementations of the 'coro-split', 'coro-elide', and
'coro-cleanup' passes, use a similar pattern as the one used here: a static
function is shared across both old and new passes to detect if relevant
coroutine intrinsics are delcared. To make this pattern easier to read, this
patch adds `const` keywords to the parameters of `coro::declaresIntrinsics`.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D71898

Files:
  llvm/include/llvm-c/Transforms/Coroutines.h
  llvm/include/llvm/Transforms/Coroutines.h
  llvm/include/llvm/Transforms/Coroutines/CoroEarly.h
  llvm/lib/Passes/LLVMBuild.txt
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Passes/PassRegistry.def
  llvm/lib/Transforms/Coroutines/CoroEarly.cpp
  llvm/lib/Transforms/Coroutines/CoroInternal.h
  llvm/lib/Transforms/Coroutines/Coroutines.cpp
  llvm/test/Transforms/Coroutines/coro-early.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71898.235338.patch
Type: text/x-patch
Size: 11293 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191226/26edeadb/attachment.bin>


More information about the llvm-commits mailing list