LLVM: llvm::coro::AsyncABI Class Reference (original) (raw)
#include "[llvm/Transforms/Coroutines/ABI.h](ABI%5F8h%5Fsource.html)"
Inheritance diagram for llvm::coro::AsyncABI:
| Public Member Functions | |
|---|---|
| AsyncABI (Function &F, coro::Shape &S, std::function< bool(Instruction &)> IsMaterializable) | |
| void | init () override |
| void | splitCoroutine (Function &F, coro::Shape &Shape, SmallVectorImpl< Function * > &Clones, TargetTransformInfo &TTI) override |
| Public Member Functions inherited from llvm::coro::BaseABI | |
| BaseABI (Function &F, coro::Shape &S, std::function< bool(Instruction &)> IsMaterializable) | |
| virtual | ~BaseABI ()=default |
| virtual void | buildCoroutineFrame (bool OptimizeFrame) |
Detailed Description
Definition at line 80 of file ABI.h.
Constructor & Destructor Documentation
Member Function Documentation
◆ init()
| void coro::AsyncABI::init ( ) | overridevirtual |
|---|
◆ splitCoroutine()
Implements llvm::coro::BaseABI.
Definition at line 1718 of file CoroSplit.cpp.
References llvm::ArrayRef(), assert(), llvm::coro::Async, llvm::cast(), llvm::coro::Continuation, llvm::BasicBlock::Create(), llvm::coro::BaseCloner::createClone(), createCloneDeclaration(), llvm::coro::createMustTailCall(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::enumerate(), llvm::coro::BaseABI::F, FramePtr, llvm::Type::getInt8Ty(), llvm::PointerType::getUnqual(), llvm::TrackingVH< ValueTy >::getValPtr(), llvm::InlineFunction(), llvm::CoroSuspendAsyncInst::MustTailCallFuncArg, llvm::SmallVectorTemplateBase< T, bool >::push_back(), replaceAsyncResumeFunction(), llvm::SmallVectorImpl< T >::reserve(), llvm::coro::BaseABI::Shape, and llvm::SmallVectorTemplateCommon< T, typename >::size().
The documentation for this class was generated from the following files:
- include/llvm/Transforms/Coroutines/ABI.h
- lib/Transforms/Coroutines/CoroSplit.cpp
- lib/Transforms/Coroutines/Coroutines.cpp