LLVM  14.0.0git
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 BlockLabelVec = std::vector< const BasicBlock * >
 

Public Member Functions

 DivergencePropagator (const ModifiedPO &LoopPOT, const DominatorTree &DT, const PostDominatorTree &PDT, const LoopInfo &LI, const BasicBlock &DivTermBlock)
 
void printDefs (raw_ostream &Out)
 
bool computeJoin (const BasicBlock &SuccBlock, const BasicBlock &PushedLabel)
 
bool visitLoopExitEdge (const BasicBlock &ExitBlock, const BasicBlock &DefBlock, bool FromParentLoop)
 
bool visitEdge (const BasicBlock &SuccBlock, const BasicBlock &DefBlock)
 
std::unique_ptr< ControlDivergenceDesccomputeJoinPoints ()
 

Public Attributes

const ModifiedPOLoopPOT
 
const DominatorTreeDT
 
const PostDominatorTreePDT
 
const LoopInfoLI
 
const BasicBlockDivTermBlock
 
BlockLabelVec BlockLabels
 
std::unique_ptr< ControlDivergenceDescDivDesc
 

Detailed Description

Definition at line 244 of file SyncDependenceAnalysis.cpp.

Member Typedef Documentation

◆ BlockLabelVec

Definition at line 256 of file SyncDependenceAnalysis.cpp.

Constructor & Destructor Documentation

◆ DivergencePropagator()

llvm::DivergencePropagator::DivergencePropagator ( const ModifiedPO LoopPOT,
const DominatorTree DT,
const PostDominatorTree PDT,
const LoopInfo LI,
const BasicBlock DivTermBlock 
)
inline

Definition at line 261 of file SyncDependenceAnalysis.cpp.

Member Function Documentation

◆ computeJoin()

bool llvm::DivergencePropagator::computeJoin ( const BasicBlock SuccBlock,
const BasicBlock PushedLabel 
)
inline

Definition at line 285 of file SyncDependenceAnalysis.cpp.

References BlockLabels, llvm::ModifiedPO::getIndexOf(), and LoopPOT.

Referenced by visitEdge(), and visitLoopExitEdge().

◆ computeJoinPoints()

std::unique_ptr<ControlDivergenceDesc> llvm::DivergencePropagator::computeJoinPoints ( )
inline

◆ printDefs()

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

◆ visitEdge()

bool llvm::DivergencePropagator::visitEdge ( const BasicBlock SuccBlock,
const BasicBlock DefBlock 
)
inline

◆ visitLoopExitEdge()

bool llvm::DivergencePropagator::visitLoopExitEdge ( const BasicBlock ExitBlock,
const BasicBlock DefBlock,
bool  FromParentLoop 
)
inline

Member Data Documentation

◆ BlockLabels

BlockLabelVec llvm::DivergencePropagator::BlockLabels

Definition at line 257 of file SyncDependenceAnalysis.cpp.

Referenced by computeJoin(), computeJoinPoints(), and printDefs().

◆ DivDesc

std::unique_ptr<ControlDivergenceDesc> llvm::DivergencePropagator::DivDesc

Definition at line 259 of file SyncDependenceAnalysis.cpp.

Referenced by computeJoinPoints(), visitEdge(), and visitLoopExitEdge().

◆ DivTermBlock

const BasicBlock& llvm::DivergencePropagator::DivTermBlock

Definition at line 249 of file SyncDependenceAnalysis.cpp.

Referenced by computeJoinPoints().

◆ DT

const DominatorTree& llvm::DivergencePropagator::DT

Definition at line 246 of file SyncDependenceAnalysis.cpp.

◆ LI

const LoopInfo& llvm::DivergencePropagator::LI

Definition at line 248 of file SyncDependenceAnalysis.cpp.

Referenced by computeJoinPoints().

◆ LoopPOT

const ModifiedPO& llvm::DivergencePropagator::LoopPOT

Definition at line 245 of file SyncDependenceAnalysis.cpp.

Referenced by computeJoin(), computeJoinPoints(), and printDefs().

◆ PDT

const PostDominatorTree& llvm::DivergencePropagator::PDT

Definition at line 247 of file SyncDependenceAnalysis.cpp.


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