|
LLVM 23.0.0git
|
#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 coro::Shape &Shape) |
| 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 |
Definition at line 69 of file SuspendCrossingInfo.h.
| llvm::SuspendCrossingInfo::SuspendCrossingInfo | ( | Function & | F, |
| const coro::Shape & | Shape ) |
Definition at line 148 of file SuspendCrossingInfo.cpp.
References B(), llvm::coro::Shape::CoroEnds, llvm::coro::Shape::CoroIsInRampInsts, llvm::coro::Shape::CoroSuspends, dump(), llvm::dyn_cast(), F, for(), llvm::BasicBlock::getParent(), I, if(), LLVM_DEBUG, and N.
| LLVM_DUMP_METHOD void llvm::SuspendCrossingInfo::dump | ( | ) | const |
Definition at line 48 of file SuspendCrossingInfo.cpp.
References B(), llvm::dbgs(), dump(), llvm::dumpBasicBlockLabel(), F, llvm::ModuleSlotTracker::incorporateFunction(), and LLVM_DUMP_METHOD.
Referenced by dump(), and SuspendCrossingInfo().
| 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().
| 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().
| 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.
Definition at line 157 of file SuspendCrossingInfo.h.
References A(), and isDefinitionAcrossSuspend().
|
inline |
Definition at line 135 of file SuspendCrossingInfo.h.
References assert(), llvm::cast(), llvm::dyn_cast(), llvm::BasicBlock::getSinglePredecessor(), hasPathCrossingSuspendPoint(), I, and llvm::isa().
Referenced by llvm::coro::collectSpillsAndAllocasFromInsts(), llvm::coro::collectSpillsFromArgs(), llvm::coro::collectSpillsFromDbgInfo(), llvm::coro::doRematerializations(), isDefinitionAcrossSuspend(), isDefinitionAcrossSuspend(), isDefinitionAcrossSuspend(), isDefinitionAcrossSuspend(), and sinkLifetimeStartMarkers().
|
inline |
Definition at line 161 of file SuspendCrossingInfo.h.
References assert(), I, llvm::isa(), and isDefinitionAcrossSuspend().
Definition at line 185 of file SuspendCrossingInfo.h.
References llvm::dyn_cast(), isDefinitionAcrossSuspend(), llvm_unreachable, and llvm::Value::users().
Definition at line 175 of file SuspendCrossingInfo.h.
References llvm::dyn_cast(), isDefinitionAcrossSuspend(), and llvm_unreachable.