Start of an llvm.coro.async implementation

Authored by aschwaighofer on Oct 21 2020, 2:41 PM.


Start of an llvm.coro.async implementation

This patch adds the async lowering of coroutines.

This will be used by the Swift frontend to lower async functions. In
contrast to the retcon lowering the frontend needs to be in control
over control-flow at suspend points as execution might be suspended at
these points.

This is very much work in progress and the implementation will change as
it evolves with the frontend. As such the documentation is lacking
detail as some of it might change.


Differential Revision: https://reviews.llvm.org/D90612