LLVM 20.0.0git
Classes | Namespaces | Typedefs | Functions
SpillUtils.h File Reference
#include "llvm/IR/Dominators.h"
#include "llvm/Transforms/Coroutines/CoroShape.h"
#include "llvm/Transforms/Coroutines/SuspendCrossingInfo.h"

Go to the source code of this file.

Classes

struct  llvm::coro::AllocaInfo
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::coro
 

Typedefs

using llvm::coro::SpillInfo = SmallMapVector< Value *, SmallVector< Instruction *, 2 >, 8 >
 

Functions

void llvm::coro::collectSpillsFromArgs (SpillInfo &Spills, Function &F, const SuspendCrossingInfo &Checker)
 
void llvm::coro::collectSpillsAndAllocasFromInsts (SpillInfo &Spills, SmallVector< AllocaInfo, 8 > &Allocas, SmallVector< Instruction *, 4 > &DeadInstructions, SmallVector< CoroAllocaAllocInst *, 4 > &LocalAllocas, Function &F, const SuspendCrossingInfo &Checker, const DominatorTree &DT, const coro::Shape &Shape)
 
void llvm::coro::collectSpillsFromDbgInfo (SpillInfo &Spills, Function &F, const SuspendCrossingInfo &Checker)
 
void llvm::coro::sinkSpillUsesAfterCoroBegin (const DominatorTree &DT, CoroBeginInst *CoroBegin, coro::SpillInfo &Spills, SmallVectorImpl< coro::AllocaInfo > &Allocas)
 Async and Retcon{Once} conventions assume that all spill uses can be sunk after the coro.begin intrinsic.
 
BasicBlock::iterator llvm::coro::getSpillInsertionPt (const coro::Shape &, Value *Def, const DominatorTree &DT)