class SyncDependenceAnalysis
Declaration
class SyncDependenceAnalysis { /* full declaration omitted */ };
Description
Relates points of divergent control to join points in reducible CFGs.
This analysis relates points of divergent control to points of converging divergent control. The analysis requires all loops to be reducible.
Declared at: llvm/include/llvm/Analysis/SyncDependenceAnalysis.h:39
Method Overview
- public SyncDependenceAnalysis(const llvm::DominatorTree & DT, const llvm::PostDominatorTree & PDT, const llvm::LoopInfo & LI)
- public bool inRegion(const llvm::BasicBlock & BB) const
- public const llvm::ConstBlockSet & join_blocks(const llvm::Instruction & Term)
- public const llvm::ConstBlockSet & join_blocks(const llvm::Loop & Loop)
- public ~SyncDependenceAnalysis()
Methods
¶SyncDependenceAnalysis(
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI)
SyncDependenceAnalysis(
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI)
Declared at: llvm/include/llvm/Analysis/SyncDependenceAnalysis.h:47
Parameters
- const llvm::DominatorTree& DT
- const llvm::PostDominatorTree& PDT
- const llvm::LoopInfo& LI
¶bool inRegion(const llvm::BasicBlock& BB) const
bool inRegion(const llvm::BasicBlock& BB) const
Declared at: llvm/include/llvm/Analysis/SyncDependenceAnalysis.h:44
Parameters
- const llvm::BasicBlock& BB
¶const llvm::ConstBlockSet& join_blocks(
const llvm::Instruction& Term)
const llvm::ConstBlockSet& join_blocks(
const llvm::Instruction& Term)
Description
Computes divergent join points and loop exits caused by branch divergence in \p Term.
The set of blocks which are reachable by disjoint paths from \p Term. The set also contains loop exits if there two disjoint paths: one from \p Term to the loop exit and another from \p Term to the loop header. Those exit blocks are added to the returned set. If L is the parent loop of \p Term and an exit of L is in the returned set then L is a divergent loop.
Declared at: llvm/include/llvm/Analysis/SyncDependenceAnalysis.h:59
Parameters
- const llvm::Instruction& Term
¶const llvm::ConstBlockSet& join_blocks(
const llvm::Loop& Loop)
const llvm::ConstBlockSet& join_blocks(
const llvm::Loop& Loop)
Description
Computes divergent join points and loop exits (in the surrounding loop) caused by the divergent loop exits of\p Loop.
The set of blocks which are reachable by disjoint paths from the loop exits of \p Loop. This treats the loop as a single node in \p Loop's parent loop. The returned set has the same properties as for join_blocks(TermInst & ).
Declared at: llvm/include/llvm/Analysis/SyncDependenceAnalysis.h:68
Parameters
- const llvm::Loop& Loop
¶~SyncDependenceAnalysis()
~SyncDependenceAnalysis()
Declared at: llvm/include/llvm/Analysis/SyncDependenceAnalysis.h:46