enum class ABI

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:46

Enumerators

NameValueComment
Switch0The "resume-switch" lowering, where there are separate resume and destroy functions that are shared between all suspend points. The coroutine frame implicitly stores the resume and destroy functions, the current index, and any promise value.
Retcon1The "returned-continuation" lowering, where each suspend point creates a single continuation function that is used for both resuming and destroying. Does not support promises.
RetconOnce2The "unique returned-continuation" lowering, where each suspend point creates a single continuation function that is used for both resuming and destroying. Does not support promises. The function is known to suspend at most once during its execution, and the return value of the continuation is void.
Async3The "async continuation" lowering, where each suspend point creates a single continuation function. The continuation function is available as an intrinsic.