LLVM 20.0.0git
|
#include "llvm/Transforms/Coroutines/ABI.h"
Public Member Functions | |
AnyRetconABI (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 | init ()=0 |
virtual void | buildCoroutineFrame (bool OptimizeFrame) |
virtual void | splitCoroutine (Function &F, coro::Shape &Shape, SmallVectorImpl< Function * > &Clones, TargetTransformInfo &TTI)=0 |
Additional Inherited Members | |
Public Attributes inherited from llvm::coro::BaseABI | |
Function & | F |
coro::Shape & | Shape |
std::function< bool(Instruction &I)> | IsMaterializable |
|
inline |
|
overridevirtual |
Implements llvm::coro::BaseABI.
Definition at line 398 of file Coroutines.cpp.
References llvm::coro::Shape::ABI, assert(), llvm::coro::Shape::CoroSuspends, llvm::Type::dump(), llvm::Function::getFunctionType(), llvm::coro::Shape::getRetconResultTypes(), llvm::coro::Shape::getRetconResumeTypes(), I, llvm::CastInst::isBitCastable(), llvm::Type::isVoidTy(), llvm::report_fatal_error(), llvm::coro::Shape::RetconLoweringStorage::ResumePrototype, llvm::coro::Retcon, llvm::coro::Shape::RetconLowering, llvm::coro::RetconOnce, and llvm::ArrayRef< T >::size().
|
overridevirtual |
Implements llvm::coro::BaseABI.
Definition at line 1780 of file CoroSplit.cpp.
References llvm::coro::Shape::ABI, llvm::PHINode::addIncoming(), assert(), llvm::coro::Continuation, llvm::coro::Shape::CoroBegin, llvm::coro::Shape::CoroSuspends, llvm::BasicBlock::Create(), llvm::IRBuilderBase::CreateBitCast(), llvm::coro::BaseCloner::createClone(), createCloneDeclaration(), llvm::IRBuilderBase::CreateInsertValue(), llvm::IRBuilderBase::CreatePHI(), llvm::IRBuilderBase::CreateRet(), llvm::IRBuilderBase::CreateStore(), DL, llvm::coro::Shape::emitAlloc(), llvm::SmallVectorBase< Size_T >::empty(), llvm::enumerate(), F, llvm::coro::Shape::FramePtr, llvm::coro::Shape::FrameTy, llvm::PoisonValue::get(), llvm::IRBuilderBase::getInt64(), llvm::coro::Shape::getRetconCoroId(), llvm::coro::Shape::getRetconResultTypes(), llvm::Value::getType(), llvm::TrackingVH< ValueTy >::getValPtr(), Idx, llvm::coro::Shape::RetconLoweringStorage::IsFrameInlineInStorage, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::SmallVectorImpl< T >::reserve(), llvm::coro::Retcon, llvm::coro::Shape::RetconLowering, llvm::coro::RetconOnce, RetTy, llvm::coro::Shape::RetconLoweringStorage::ReturnBlock, llvm::SmallVectorBase< Size_T >::size(), Size, and llvm::zip_equal().