LLVM
8.0.1
|
Public Types | |
using | DefiningBlockMap = std::map< const BasicBlock *, const BasicBlock * > |
Public Member Functions | |
DivergencePropagator (const FunctionRPOT &FuncRPOT, const DominatorTree &DT, const PostDominatorTree &PDT, const LoopInfo &LI) | |
void | addPending (const BasicBlock &Block, const BasicBlock &DefBlock) |
void | printDefs (raw_ostream &Out) |
void | visitSuccessor (const BasicBlock &SuccBlock, const Loop *ParentLoop, const BasicBlock &DefBlock) |
template<typename SuccessorIterable > | |
std::unique_ptr< ConstBlockSet > | computeJoinPoints (const BasicBlock &RootBlock, SuccessorIterable NodeSuccessors, const Loop *ParentLoop) |
Public Attributes | |
const FunctionRPOT & | FuncRPOT |
const DominatorTree & | DT |
const PostDominatorTree & | PDT |
const LoopInfo & | LI |
std::unique_ptr< ConstBlockSet > | JoinBlocks |
SmallPtrSet< const BasicBlock *, 4 > | ReachedLoopExits |
DefiningBlockMap | DefMap |
std::unordered_set< const BasicBlock * > | PendingUpdates |
Definition at line 131 of file SyncDependenceAnalysis.cpp.
using llvm::DivergencePropagator::DefiningBlockMap = std::map<const BasicBlock *, const BasicBlock *> |
Definition at line 147 of file SyncDependenceAnalysis.cpp.
|
inline |
Definition at line 153 of file SyncDependenceAnalysis.cpp.
|
inline |
Definition at line 159 of file SyncDependenceAnalysis.cpp.
|
inline |
Definition at line 221 of file SyncDependenceAnalysis.cpp.
References assert(), llvm::ReversePostOrderTraversal< GraphT, GT >::begin(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::dbgs(), llvm::SmallPtrSetImplBase::empty(), llvm::ReversePostOrderTraversal< GraphT, GT >::end(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::SmallPtrSetImpl< PtrType >::insert(), LLVM_DEBUG, and llvm::successors().
Referenced by llvm::SyncDependenceAnalysis::join_blocks().
|
inline |
Definition at line 165 of file SyncDependenceAnalysis.cpp.
|
inline |
Definition at line 182 of file SyncDependenceAnalysis.cpp.
References llvm::LoopBase< BlockT, LoopT >::contains(), and llvm::SmallPtrSetImpl< PtrType >::insert().
DefiningBlockMap llvm::DivergencePropagator::DefMap |
Definition at line 148 of file SyncDependenceAnalysis.cpp.
const DominatorTree& llvm::DivergencePropagator::DT |
Definition at line 133 of file SyncDependenceAnalysis.cpp.
Referenced by llvm::LegacyDivergenceAnalysis::runOnFunction().
const FunctionRPOT& llvm::DivergencePropagator::FuncRPOT |
Definition at line 132 of file SyncDependenceAnalysis.cpp.
Referenced by llvm::LegacyDivergenceAnalysis::getAnalysisUsage().
std::unique_ptr<ConstBlockSet> llvm::DivergencePropagator::JoinBlocks |
Definition at line 138 of file SyncDependenceAnalysis.cpp.
Definition at line 135 of file SyncDependenceAnalysis.cpp.
Referenced by llvm::LegacyDivergenceAnalysis::getAnalysisUsage(), and llvm::LegacyDivergenceAnalysis::runOnFunction().
const PostDominatorTree& llvm::DivergencePropagator::PDT |
Definition at line 134 of file SyncDependenceAnalysis.cpp.
Referenced by llvm::LegacyDivergenceAnalysis::runOnFunction().
std::unordered_set<const BasicBlock *> llvm::DivergencePropagator::PendingUpdates |
Definition at line 151 of file SyncDependenceAnalysis.cpp.
SmallPtrSet<const BasicBlock *, 4> llvm::DivergencePropagator::ReachedLoopExits |
Definition at line 141 of file SyncDependenceAnalysis.cpp.