LLVM 22.0.0git
llvm::SuspendCrossingInfo Class Reference

#include "llvm/Transforms/Coroutines/SuspendCrossingInfo.h"

Public Member Functions

void dump () const
void dump (StringRef Label, BitVector const &BV, const ReversePostOrderTraversal< Function * > &RPOT, ModuleSlotTracker &MST) const
LLVM_ABI SuspendCrossingInfo (Function &F, const SmallVectorImpl< AnyCoroSuspendInst * > &CoroSuspends, const SmallVectorImpl< AnyCoroEndInst * > &CoroEnds)
LLVM_ABI bool hasPathCrossingSuspendPoint (BasicBlock *From, BasicBlock *To) const
 Returns true if there is a path from From to To crossing a suspend point without crossing From a 2nd time.
LLVM_ABI bool hasPathOrLoopCrossingSuspendPoint (BasicBlock *From, BasicBlock *To) const
 Returns true if there is a path from From to To crossing a suspend point without crossing From a 2nd time.
bool isDefinitionAcrossSuspend (BasicBlock *DefBB, User *U) const
bool isDefinitionAcrossSuspend (Argument &A, User *U) const
bool isDefinitionAcrossSuspend (Instruction &I, User *U) const
bool isDefinitionAcrossSuspend (Value &V, User *U) const
bool isDefinitionAcrossSuspend (Value &V) const

Detailed Description

Definition at line 68 of file SuspendCrossingInfo.h.

Constructor & Destructor Documentation

◆ SuspendCrossingInfo()

llvm::SuspendCrossingInfo::SuspendCrossingInfo ( Function & F,
const SmallVectorImpl< AnyCoroSuspendInst * > & CoroSuspends,
const SmallVectorImpl< AnyCoroEndInst * > & CoroEnds )

Definition at line 156 of file SuspendCrossingInfo.cpp.

References assert(), B(), dump(), F, llvm::BasicBlock::getParent(), I, LLVM_DEBUG, and N.

Member Function Documentation

◆ dump() [1/2]

LLVM_DUMP_METHOD void llvm::SuspendCrossingInfo::dump ( ) const

◆ dump() [2/2]

LLVM_DUMP_METHOD void llvm::SuspendCrossingInfo::dump ( StringRef Label,
BitVector const & BV,
const ReversePostOrderTraversal< Function * > & RPOT,
ModuleSlotTracker & MST ) const

Definition at line 34 of file SuspendCrossingInfo.cpp.

References llvm::dbgs(), and llvm::dumpBasicBlockLabel().

◆ hasPathCrossingSuspendPoint()

bool llvm::SuspendCrossingInfo::hasPathCrossingSuspendPoint ( BasicBlock * From,
BasicBlock * To ) const

Returns true if there is a path from From to To crossing a suspend point without crossing From a 2nd time.

Definition at line 70 of file SuspendCrossingInfo.cpp.

References llvm::dbgs(), llvm::Value::getName(), and LLVM_DEBUG.

Referenced by isDefinitionAcrossSuspend().

◆ hasPathOrLoopCrossingSuspendPoint()

bool llvm::SuspendCrossingInfo::hasPathOrLoopCrossingSuspendPoint ( BasicBlock * From,
BasicBlock * To ) const

Returns true if there is a path from From to To crossing a suspend point without crossing From a 2nd time.

If From is the same as To this will also check if there is a looping path crossing a suspend point.

Definition at line 80 of file SuspendCrossingInfo.cpp.

References llvm::dbgs(), llvm::Value::getName(), and LLVM_DEBUG.

◆ isDefinitionAcrossSuspend() [1/5]

bool llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend ( Argument & A,
User * U ) const
inline

Definition at line 144 of file SuspendCrossingInfo.h.

References A(), and isDefinitionAcrossSuspend().

◆ isDefinitionAcrossSuspend() [2/5]

◆ isDefinitionAcrossSuspend() [3/5]

bool llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend ( Instruction & I,
User * U ) const
inline

Definition at line 148 of file SuspendCrossingInfo.h.

References assert(), I, llvm::isa(), and isDefinitionAcrossSuspend().

◆ isDefinitionAcrossSuspend() [4/5]

bool llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend ( Value & V) const
inline

◆ isDefinitionAcrossSuspend() [5/5]

bool llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend ( Value & V,
User * U ) const
inline

The documentation for this class was generated from the following files: