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)

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

Description

The GPU kernel this analysis result is for

Declared at: llvm/include/llvm/Analysis/DivergenceAnalysis.h:164

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

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

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

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

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