LLVM
8.0.1
|
Classes | |
struct | LowererBase |
struct | Shape |
Functions | |
bool | declaresIntrinsics (Module &M, std::initializer_list< StringRef >) |
void | replaceAllCoroAllocs (CoroBeginInst *CB, bool Replacement) |
void | replaceAllCoroFrees (CoroBeginInst *CB, Value *Replacement) |
void | replaceCoroFree (CoroIdInst *CoroId, bool Elide) |
void | updateCallGraph (Function &Caller, ArrayRef< Function *> Funcs, CallGraph &CG, CallGraphSCC &SCC) |
void | buildCoroutineFrame (Function &F, Shape &Shape) |
Definition at line 866 of file CoroFrame.cpp.
References llvm::Function::args(), buildFrameType(), llvm::CoroIdInst::clearPromise(), llvm::coro::Shape::CoroBegin, llvm::coro::Shape::CoroEnds, llvm::coro::Shape::CoroSuspends, llvm::dump(), llvm::coro::Shape::FramePtr, llvm::coro::Shape::FrameTy, llvm::Function::getContext(), llvm::CoroSuspendInst::getCoroSave(), llvm::CoroBeginInst::getId(), llvm::CoroIdInst::getPromise(), I, insertSpills(), llvm::instructions(), isCoroutineStructureIntrinsic(), LLVM_DEBUG, llvm::LowerDbgDeclare(), materializable(), moveSpillUsesAfterCoroBegin(), llvm::coro::Shape::PromiseAlloca, llvm::report_fatal_error(), rewriteMaterializableInstructions(), rewritePHIs(), and splitAround().
Referenced by llvm::coro::Shape::Shape(), and splitCoroutine().
Definition at line 140 of file Coroutines.cpp.
References assert(), llvm::Module::getNamedValue(), isCoroutineIntrinsicName(), and Name.
Referenced by lowerSubFn(), replaceDevirtTrigger(), and setCannotDuplicate().
void llvm::coro::replaceAllCoroAllocs | ( | CoroBeginInst * | CB, |
bool | Replacement | ||
) |
void llvm::coro::replaceAllCoroFrees | ( | CoroBeginInst * | CB, |
Value * | Replacement | ||
) |
void llvm::coro::replaceCoroFree | ( | CoroIdInst * | CoroId, |
bool | Elide | ||
) |
Definition at line 153 of file Coroutines.cpp.
References llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::front(), llvm::ConstantPointerNull::get(), llvm::Value::getContext(), llvm::CoroFreeInst::getFrame(), llvm::Type::getInt8PtrTy(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), and llvm::Value::users().
Referenced by createClone(), getFirstNonAllocaInTheEntryBlock(), and handleNoSuspendCoroutine().
void llvm::coro::updateCallGraph | ( | Function & | Caller, |
ArrayRef< Function *> | Funcs, | ||
CallGraph & | CG, | ||
CallGraphSCC & | SCC | ||
) |
Definition at line 194 of file Coroutines.cpp.
References llvm::CallGraphSCC::begin(), buildCGN(), Callee, llvm::CallGraphSCC::end(), F(), llvm::CallGraph::getOrInsertFunction(), and llvm::CallGraphSCC::initialize().
Referenced by splitCoroutine().