[llvm-dev] LLVM passes for C++20 coroutines now work with the new pass manager

Brian Gesiak via llvm-dev llvm-dev at lists.llvm.org
Tue Feb 18 23:00:27 PST 2020


Hello all,

First of all, thank you to everyone who helped me out with my previous
questions/requests on this mailing list and the LLVM Discord [1]. I
just thought I'd announce that, now that the stack of diffs ending
with https://reviews.llvm.org/D71903 have landed in trunk, LLVM's
coroutine passes are capable of being run with the new pass manager
[2].

My colleagues and I have been using this stack of diffs in our
internal fork of LLVM to compile several large C++17 codebases that
make use of ThinLTO and the -fcoroutines-ts option, and it's been
working well so far. For any users of LLVM coroutines with the new
pass manager, please send bug reports my way (using either Bugzilla or
GitHub issues, I'll check both).

[1] http://lists.llvm.org/pipermail/llvm-dev/2019-November/137203.html,
http://lists.llvm.org/pipermail/llvm-dev/2019-December/137835.html,
etc.
[2] One caveat here: my patches only C++20 coroutines' "switch" ABI,
not the "returned continuation" ABI used by Swift. The codebases I
support only use the former, so I stuck with what I know.

- Brian Gesiak


More information about the llvm-dev mailing list