|
LLVM 22.0.0git
|
#include "llvm/Transforms/Coroutines/ABI.h"
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) |
Additional Inherited Members | |
| Public Attributes inherited from llvm::coro::BaseABI | |
| Function & | F |
| coro::Shape & | Shape |
| std::function< bool(Instruction &I)> | IsMaterializable |
|
inline |
Definition at line 82 of file ABI.h.
References llvm::coro::BaseABI::BaseABI(), llvm::coro::BaseABI::F, llvm::coro::BaseABI::IsMaterializable, and llvm::move().
|
overridevirtual |
Implements llvm::coro::BaseABI.
Definition at line 393 of file Coroutines.cpp.
References assert(), llvm::coro::Async, and llvm::coro::BaseABI::Shape.
|
overridevirtual |
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().