LLVM  8.0.1
Public Types | Public Member Functions | Public Attributes | List of all members
llvm::DivergencePropagator Struct Reference
Collaboration diagram for llvm::DivergencePropagator:
Collaboration graph
[legend]

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< ConstBlockSetcomputeJoinPoints (const BasicBlock &RootBlock, SuccessorIterable NodeSuccessors, const Loop *ParentLoop)
 

Public Attributes

const FunctionRPOTFuncRPOT
 
const DominatorTreeDT
 
const PostDominatorTreePDT
 
const LoopInfoLI
 
std::unique_ptr< ConstBlockSetJoinBlocks
 
SmallPtrSet< const BasicBlock *, 4 > ReachedLoopExits
 
DefiningBlockMap DefMap
 
std::unordered_set< const BasicBlock * > PendingUpdates
 

Detailed Description

Definition at line 131 of file SyncDependenceAnalysis.cpp.

Member Typedef Documentation

◆ DefiningBlockMap

Definition at line 147 of file SyncDependenceAnalysis.cpp.

Constructor & Destructor Documentation

◆ DivergencePropagator()

llvm::DivergencePropagator::DivergencePropagator ( const FunctionRPOT FuncRPOT,
const DominatorTree DT,
const PostDominatorTree PDT,
const LoopInfo LI 
)
inline

Definition at line 153 of file SyncDependenceAnalysis.cpp.

Member Function Documentation

◆ addPending()

void llvm::DivergencePropagator::addPending ( const BasicBlock Block,
const BasicBlock DefBlock 
)
inline

Definition at line 159 of file SyncDependenceAnalysis.cpp.

◆ computeJoinPoints()

template<typename SuccessorIterable >
std::unique_ptr<ConstBlockSet> llvm::DivergencePropagator::computeJoinPoints ( const BasicBlock RootBlock,
SuccessorIterable  NodeSuccessors,
const Loop ParentLoop 
)
inline

◆ printDefs()

void llvm::DivergencePropagator::printDefs ( raw_ostream Out)
inline

Definition at line 165 of file SyncDependenceAnalysis.cpp.

◆ visitSuccessor()

void llvm::DivergencePropagator::visitSuccessor ( const BasicBlock SuccBlock,
const Loop ParentLoop,
const BasicBlock DefBlock 
)
inline

Member Data Documentation

◆ DefMap

DefiningBlockMap llvm::DivergencePropagator::DefMap

Definition at line 148 of file SyncDependenceAnalysis.cpp.

◆ DT

const DominatorTree& llvm::DivergencePropagator::DT

◆ FuncRPOT

const FunctionRPOT& llvm::DivergencePropagator::FuncRPOT

◆ JoinBlocks

std::unique_ptr<ConstBlockSet> llvm::DivergencePropagator::JoinBlocks

Definition at line 138 of file SyncDependenceAnalysis.cpp.

◆ LI

const LoopInfo& llvm::DivergencePropagator::LI

◆ PDT

const PostDominatorTree& llvm::DivergencePropagator::PDT

◆ PendingUpdates

std::unordered_set<const BasicBlock *> llvm::DivergencePropagator::PendingUpdates

Definition at line 151 of file SyncDependenceAnalysis.cpp.

◆ ReachedLoopExits

SmallPtrSet<const BasicBlock *, 4> llvm::DivergencePropagator::ReachedLoopExits

Definition at line 141 of file SyncDependenceAnalysis.cpp.


The documentation for this struct was generated from the following file: