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:60
Member Variables
- private llvm::ModifiedPO LoopPO
- private const llvm::DominatorTree& DT
- private const llvm::PostDominatorTree& PDT
- private const llvm::LoopInfo& LI
- private std::map<const Instruction*, std::unique_ptr<ControlDivergenceDesc>> CachedControlDivDescs
- private static llvm::ControlDivergenceDesc EmptyDivergenceDesc
Method Overview
- public SyncDependenceAnalysis(const llvm::DominatorTree & DT, const llvm::PostDominatorTree & PDT, const llvm::LoopInfo & LI)
- public const llvm::ControlDivergenceDesc & getJoinBlocks(const llvm::Instruction & Term)
- 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:63
Parameters
- const llvm::DominatorTree& DT
- const llvm::PostDominatorTree& PDT
- const llvm::LoopInfo& LI
¶const llvm::ControlDivergenceDesc& getJoinBlocks(
const llvm::Instruction& Term)
const llvm::ControlDivergenceDesc& getJoinBlocks(
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:75
Parameters
- const llvm::Instruction& Term
¶~SyncDependenceAnalysis()
~SyncDependenceAnalysis()
Declared at: llvm/include/llvm/Analysis/SyncDependenceAnalysis.h:62