class DivergenceInfo
Declaration
class DivergenceInfo { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:142
Member Variables
- private llvm::Function& F
- private bool ContainsIrreducible = false
- private std::unique_ptr<SyncDependenceAnalysis> SDA
- private std::unique_ptr<DivergenceAnalysisImpl> DA
Method Overview
- public DivergenceInfo(llvm::Function & F, const llvm::DominatorTree & DT, const llvm::PostDominatorTree & PDT, const llvm::LoopInfo & LI, const llvm::TargetTransformInfo & TTI, bool KnownReducible)
- public const llvm::Function & getFunction() const
- public bool hasDivergence() const
- public bool isDivergent(const llvm::Value & V) const
- public bool isDivergentUse(const llvm::Use & U) const
- public bool isUniform(const llvm::Value & V) const
- public bool isUniformUse(const llvm::Use & U) const
Methods
¶DivergenceInfo(
llvm::Function& F,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI,
const llvm::TargetTransformInfo& TTI,
bool KnownReducible)
DivergenceInfo(
llvm::Function& F,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI,
const llvm::TargetTransformInfo& TTI,
bool KnownReducible)
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:154
Parameters
- llvm::Function& F
- const llvm::DominatorTree& DT
- const llvm::PostDominatorTree& PDT
- const llvm::LoopInfo& LI
- const llvm::TargetTransformInfo& TTI
- bool KnownReducible
¶const llvm::Function& getFunction() const
const llvm::Function& getFunction() const
Description
The GPU kernel this analysis result is for
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:164
¶bool hasDivergence() const
bool hasDivergence() const
Description
Whether any divergence was detected.
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:159
¶bool isDivergent(const llvm::Value& V) const
bool isDivergent(const llvm::Value& V) const
Description
Whether \p V is divergent at its definition.
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:167
Parameters
- const llvm::Value& V
¶bool isDivergentUse(const llvm::Use& U) const
bool isDivergentUse(const llvm::Use& U) const
Description
Whether \p U is divergent. Uses of a uniform value can be divergent.
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:172
Parameters
- const llvm::Use& U
¶bool isUniform(const llvm::Value& V) const
bool isUniform(const llvm::Value& V) const
Description
Whether \p V is uniform/non-divergent.
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:177
Parameters
- const llvm::Value& V
¶bool isUniformUse(const llvm::Use& U) const
bool isUniformUse(const llvm::Use& U) const
Description
Whether \p U is uniform/non-divergent. Uses of a uniform value can be divergent.
Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:181
Parameters
- const llvm::Use& U