LLVM
15.0.0git
|
Classes | |
struct | LowererBase |
struct | Shape |
Enumerations | |
enum | ABI { ABI::Switch, ABI::Retcon, ABI::RetconOnce, ABI::Async } |
Functions | |
bool | declaresAnyIntrinsic (const Module &M) |
bool | declaresIntrinsics (const Module &M, const std::initializer_list< StringRef >) |
void | replaceCoroFree (CoroIdInst *CoroId, bool Elide) |
void | salvageDebugInfo (SmallDenseMap< llvm::Value *, llvm::AllocaInst *, 4 > &DbgPtrAllocaCache, DbgVariableIntrinsic *DVI, bool OptimizeFrame) |
Recover a dbg.declare prepared by the frontend and emit an alloca holding a pointer to the coroutine frame. More... | |
void | buildCoroutineFrame (Function &F, Shape &Shape) |
CallInst * | createMustTailCall (DebugLoc Loc, Function *MustTailCallFn, ArrayRef< Value * > Arguments, IRBuilder<> &) |
|
strong |
Definition at line 48 of file CoroInternal.h.
Definition at line 2642 of file CoroFrame.cpp.
References A, llvm::coro::Shape::ABI, llvm::AMDGPU::HSAMD::Kernel::Key::Args, Arguments, Builder, llvm::MCID::Call, cleanupSinglePredPHIs(), llvm::CoroIdInst::clearPromise(), collectFrameAllocas(), llvm::coro::Shape::CoroBegin, llvm::coro::Shape::CoroEnds, llvm::coro::Shape::CoroSuspends, createMustTailCall(), llvm::ArrayRef< T >::drop_front(), dumpAllocas(), dumpSpills(), eliminateSwiftError(), F, llvm::coro::Shape::getSwitchCoroId(), I, instructions, isCoroutineStructureIntrinsic(), isLocalAlloca(), LLVM_DEBUG, materializable(), llvm::coro::Shape::SwitchLoweringStorage::PromiseAlloca, rewriteMaterializableInstructions(), rewritePHIs(), sinkLifetimeStartMarkers(), splitAround(), and llvm::coro::Shape::SwitchLowering.
Referenced by splitCoroutine().
CallInst * llvm::coro::createMustTailCall | ( | DebugLoc | Loc, |
Function * | MustTailCallFn, | ||
ArrayRef< Value * > | Arguments, | ||
IRBuilder<> & | Builder | ||
) |
Definition at line 1643 of file CoroSplit.cpp.
References Arguments, Builder, coerceArguments(), llvm::Function::getCallingConv(), llvm::Function::getFunctionType(), llvm::MipsISD::TailCall, and llvm::CallInst::TCK_MustTail.
Referenced by buildCoroutineFrame().
Definition at line 105 of file Coroutines.cpp.
References assert(), CoroIntrinsics, isCoroutineIntrinsicName(), and M.
Referenced by llvm::CoroConditionalWrapper::run().
bool llvm::coro::declaresIntrinsics | ( | const Module & | M, |
const std::initializer_list< StringRef > | List | ||
) |
Definition at line 117 of file Coroutines.cpp.
References assert(), isCoroutineIntrinsicName(), List, and M.
Referenced by declaresCoroCleanupIntrinsics(), declaresCoroEarlyIntrinsics(), and declaresCoroElideIntrinsics().
void llvm::coro::replaceCoroFree | ( | CoroIdInst * | CoroId, |
bool | Elide | ||
) |
Definition at line 130 of file Coroutines.cpp.
References llvm::ConstantPointerNull::get(), llvm::Value::getContext(), llvm::Type::getInt8PtrTy(), and llvm::Value::users().
Referenced by handleNoSuspendCoroutine().
void llvm::coro::salvageDebugInfo | ( | SmallDenseMap< llvm::Value *, llvm::AllocaInst *, 4 > & | DbgPtrAllocaCache, |
DbgVariableIntrinsic * | DVI, | ||
bool | OptimizeFrame | ||
) |
Recover a dbg.declare prepared by the frontend and emit an alloca holding a pointer to the coroutine frame.
Definition at line 2549 of file CoroFrame.cpp.
References Arg, assert(), Builder, F, llvm::DbgVariableIntrinsic::getExpression(), llvm::Instruction::getFunction(), llvm::DIExpression::getNumLocationOperands(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariableLocationOp(), llvm::Instruction::moveAfter(), llvm::Instruction::moveBefore(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), llvm::salvageDebugInfoImpl(), and llvm::DbgVariableIntrinsic::setExpression().
Referenced by splitCoroutine().