LLVM  8.0.1
Functions
Coroutines.cpp File Reference
#include "llvm/Transforms/Coroutines.h"
#include "llvm-c/Transforms/Coroutines.h"
#include "CoroInstr.h"
#include "CoroInternal.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Analysis/CallGraph.h"
#include "llvm/Analysis/CallGraphSCCPass.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/CallSite.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/LegacyPassManager.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
#include <cassert>
#include <cstddef>
#include <utility>
Include dependency graph for Coroutines.cpp:

Go to the source code of this file.

Functions

static void addCoroutineOpt0Passes (const PassManagerBuilder &Builder, legacy::PassManagerBase &PM)
 
static void addCoroutineEarlyPasses (const PassManagerBuilder &Builder, legacy::PassManagerBase &PM)
 
static void addCoroutineScalarOptimizerPasses (const PassManagerBuilder &Builder, legacy::PassManagerBase &PM)
 
static void addCoroutineSCCPasses (const PassManagerBuilder &Builder, legacy::PassManagerBase &PM)
 
static void addCoroutineOptimizerLastPasses (const PassManagerBuilder &Builder, legacy::PassManagerBase &PM)
 
static bool isCoroutineIntrinsicName (StringRef Name)
 
static void buildCGN (CallGraph &CG, CallGraphNode *Node)
 
static void clear (coro::Shape &Shape)
 
static CoroSaveInstcreateCoroSave (CoroBeginInst *CoroBegin, CoroSuspendInst *SuspendInst)
 
void LLVMAddCoroEarlyPass (LLVMPassManagerRef PM)
 See llvm::createCoroEarlyPass function. More...
 
void LLVMAddCoroSplitPass (LLVMPassManagerRef PM)
 See llvm::createCoroSplitPass function. More...
 
void LLVMAddCoroElidePass (LLVMPassManagerRef PM)
 See llvm::createCoroElidePass function. More...
 
void LLVMAddCoroCleanupPass (LLVMPassManagerRef PM)
 See llvm::createCoroCleanupPass function. More...
 

Function Documentation

◆ addCoroutineEarlyPasses()

static void addCoroutineEarlyPasses ( const PassManagerBuilder Builder,
legacy::PassManagerBase PM 
)
static

◆ addCoroutineOpt0Passes()

static void addCoroutineOpt0Passes ( const PassManagerBuilder Builder,
legacy::PassManagerBase PM 
)
static

◆ addCoroutineOptimizerLastPasses()

static void addCoroutineOptimizerLastPasses ( const PassManagerBuilder Builder,
legacy::PassManagerBase PM 
)
static

◆ addCoroutineScalarOptimizerPasses()

static void addCoroutineScalarOptimizerPasses ( const PassManagerBuilder Builder,
legacy::PassManagerBase PM 
)
static

◆ addCoroutineSCCPasses()

static void addCoroutineSCCPasses ( const PassManagerBuilder Builder,
legacy::PassManagerBase PM 
)
static

◆ buildCGN()

static void buildCGN ( CallGraph CG,
CallGraphNode Node 
)
static

Definition at line 175 of file Coroutines.cpp.

Referenced by llvm::coro::updateCallGraph().

◆ clear()

static void clear ( coro::Shape Shape)
static

Definition at line 212 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, llvm::coro::Shape::FrameTy, llvm::coro::Shape::HasFinalSuspend, llvm::coro::Shape::PromiseAlloca, and llvm::coro::Shape::ResumeSwitch.

Referenced by llvm::DWARFDebugLine::LineTable::appendSequence(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::assign(), llvm::AttrBuilder::AttrBuilder(), llvm::coro::Shape::buildFrom(), llvm::rdf::RegisterAggr::clear(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::clearAndLeakNodesUnsafely(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::cloneFrom(), createRdxShuffleMask(), llvm::SplitAnalysis::didRepairRange(), llvm::GVNExpression::Expression::dump(), llvm::DWARFAbbreviationDeclaration::DWARFAbbreviationDeclaration(), llvm::DWARFAbbreviationDeclaration::extract(), llvm::DWARFListTableBase< DWARFDebugRnglist >::extract(), llvm::ScalarEvolution::forgetValue(), llvm::BlockFrequencyInfoImplBase::getLoopPackage(), llvm::DWARFDebugLine::Prologue::getMaxLineIncrementForSpecialOpcode(), llvm::DWARFUnit::getStringExtractor(), llvm::Timer::hasTriggered(), llvm::InterferenceCache::init(), llvm::IntervalMap< SlotIndex, unsigned >::insert(), intersect(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::isAllocaPromotable(), llvm::rdf::RegisterAggr::isCoverOf(), isDbgValueDescribedByReg(), llvm::DWARFDebugLine::LineTable::LineTable(), false::IntervalSorter::operator()(), llvm::PooledStringPtr::operator=(), llvm::DataLayout::operator=(), llvm::DWARFDebugLine::Prologue::parse(), llvm::DWARFDebugLine::LineTable::parse(), llvm::DWARFDebugLine::Prologue::Prologue(), llvm::rdf::NodeAllocator::ptr(), removeDebugValues(), llvm::DataLayout::reset(), llvm::MachineFunction::reset(), llvm::FastMathFlags::setFast(), llvm::SelectionDAG::setFunctionLoweringInfo(), llvm::TimerGroup::setName(), llvm::AliasSetTracker::~AliasSetTracker(), llvm::DataLayout::~DataLayout(), llvm::IntervalMap< SlotIndex, unsigned >::~IntervalMap(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::~iplist_impl(), and llvm::PooledStringPtr::~PooledStringPtr().

◆ createCoroSave()

static CoroSaveInst* createCoroSave ( CoroBeginInst CoroBegin,
CoroSuspendInst SuspendInst 
)
static

◆ isCoroutineIntrinsicName()

static bool isCoroutineIntrinsicName ( StringRef  Name)
static