LLVM  10.0.0svn
Public Types | Public Member Functions | Public Attributes | List of all members
llvm::DivergencePropagator Struct Reference
Collaboration diagram for llvm::DivergencePropagator:
Collaboration graph

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 130 of file SyncDependenceAnalysis.cpp.

Member Typedef Documentation

◆ DefiningBlockMap

Definition at line 146 of file SyncDependenceAnalysis.cpp.

Constructor & Destructor Documentation

◆ DivergencePropagator()

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

Definition at line 152 of file SyncDependenceAnalysis.cpp.

Member Function Documentation

◆ addPending()

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

Definition at line 158 of file SyncDependenceAnalysis.cpp.

◆ computeJoinPoints()

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

◆ printDefs()

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

Definition at line 164 of file SyncDependenceAnalysis.cpp.

◆ visitSuccessor()

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

Member Data Documentation

◆ DefMap

DefiningBlockMap llvm::DivergencePropagator::DefMap

Definition at line 147 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 137 of file SyncDependenceAnalysis.cpp.

◆ LI

const LoopInfo& llvm::DivergencePropagator::LI


const PostDominatorTree& llvm::DivergencePropagator::PDT

◆ PendingUpdates

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

Definition at line 150 of file SyncDependenceAnalysis.cpp.

◆ ReachedLoopExits

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

Definition at line 140 of file SyncDependenceAnalysis.cpp.

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