LLVM 20.0.0git
|
#include "CoroInstr.h"
#include "CoroInternal.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Analysis/CallGraph.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Transforms/Utils/Local.h"
#include <cassert>
#include <cstddef>
#include <utility>
Go to the source code of this file.
Functions | |
static bool | isCoroutineIntrinsicName (StringRef Name) |
static void | clear (coro::Shape &Shape) |
static CoroSaveInst * | createCoroSave (CoroBeginInst *CoroBegin, CoroSuspendInst *SuspendInst) |
static void | propagateCallAttrsFromCallee (CallInst *Call, Function *Callee) |
static void | addCallToCallGraph (CallGraph *CG, CallInst *Call, Function *Callee) |
static void | fail (const Instruction *I, const char *Reason, Value *V) |
static void | checkWFRetconPrototype (const AnyCoroIdRetconInst *I, Value *V) |
Check that the given value is a well-formed prototype for the llvm.coro.id.retcon. | |
static void | checkWFAlloc (const Instruction *I, Value *V) |
Check that the given value is a well-formed allocator. | |
static void | checkWFDealloc (const Instruction *I, Value *V) |
Check that the given value is a well-formed deallocator. | |
static void | checkConstantInt (const Instruction *I, Value *V, const char *Reason) |
static void | checkAsyncFuncPointer (const Instruction *I, Value *V) |
static void | checkAsyncContextProjectFunction (const Instruction *I, Function *F) |
Variables | |
static const char *const | CoroIntrinsics [] |
Definition at line 451 of file Coroutines.cpp.
Referenced by llvm::coro::Shape::emitAlloc(), and llvm::coro::Shape::emitDealloc().
|
static |
Definition at line 614 of file Coroutines.cpp.
Referenced by llvm::CoroSuspendAsyncInst::checkWellFormed().
|
static |
Definition at line 598 of file Coroutines.cpp.
Referenced by llvm::CoroIdAsyncInst::checkWellFormed().
|
static |
Definition at line 581 of file Coroutines.cpp.
Referenced by llvm::AnyCoroIdRetconInst::checkWellFormed(), and llvm::CoroIdAsyncInst::checkWellFormed().
|
static |
Check that the given value is a well-formed allocator.
Definition at line 552 of file Coroutines.cpp.
Referenced by llvm::AnyCoroIdRetconInst::checkWellFormed().
|
static |
Check that the given value is a well-formed deallocator.
Definition at line 567 of file Coroutines.cpp.
Referenced by llvm::AnyCoroIdRetconInst::checkWellFormed().
|
static |
Check that the given value is a well-formed prototype for the llvm.coro.id.retcon.
Definition at line 516 of file Coroutines.cpp.
Referenced by llvm::AnyCoroIdRetconInst::checkWellFormed().
|
static |
Definition at line 148 of file Coroutines.cpp.
References llvm::coro::Shape::AllocaSpillBlock, llvm::coro::Shape::CoroBegin, llvm::coro::Shape::CoroEnds, llvm::coro::Shape::CoroSizes, llvm::coro::Shape::CoroSuspends, llvm::coro::Shape::FramePtr, and llvm::coro::Shape::FrameTy.
Referenced by llvm::coro::Shape::buildFrom(), llvm::DWARFListTableBase< DWARFListType >::extract(), llvm::msgpack::Document::fromYAML(), llvm::DWARFDebugLine::LineTable::LineTable(), LLVMOrcJITDylibClear(), llvm::ELFAttributeParser::parse(), llvm::DWARFDebugLine::LineTable::parse(), llvm::DWARFDebugLine::Prologue::parse(), llvm::DWARFDebugLine::Prologue::Prologue(), llvm::LiveIntervals::reanalyze(), llvm::SlotIndexes::reanalyze(), llvm::MachO::InterfaceFile::remove(), llvm::MachineFunction::reset(), llvm::PagedVector< T, PageSize >::resize(), and llvm::PagedVector< T, PageSize >::~PagedVector().
|
static |
Definition at line 159 of file Coroutines.cpp.
References assert(), llvm::CallInst::Create(), llvm::CoroSuspendInst::getCoroSave(), llvm::Intrinsic::getDeclaration(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getModule(), and llvm::CallBase::setArgOperand().
Referenced by llvm::coro::Shape::buildFrom().
|
static |
Definition at line 501 of file Coroutines.cpp.
References llvm::errs(), I, and llvm::report_fatal_error().
Definition at line 98 of file Coroutines.cpp.
References CoroIntrinsics, llvm::Intrinsic::lookupLLVMIntrinsicByName(), and Name.
Referenced by llvm::coro::declaresAnyIntrinsic(), and llvm::coro::declaresIntrinsics().
Definition at line 446 of file Coroutines.cpp.
Referenced by llvm::coro::Shape::emitAlloc(), and llvm::coro::Shape::emitDealloc().
Definition at line 62 of file Coroutines.cpp.
Referenced by llvm::coro::declaresAnyIntrinsic(), and isCoroutineIntrinsicName().