LLVM: llvm::GenericUniformityAnalysisImpl< ContextT > Class Template Reference (original) (raw)
Analysis that identifies uniform values in a data-parallel execution. More...
#include "[llvm/ADT/GenericUniformityImpl.h](GenericUniformityImpl%5F8h%5Fsource.html)"
Classes | |
---|---|
struct | PhiInput |
Value/block pair representing a single phi input. More... | |
Public Types | |
---|---|
using | BlockT = typename ContextT::BlockT |
using | FunctionT = typename ContextT::FunctionT |
using | ValueRefT = typename ContextT::ValueRefT |
using | ConstValueRefT = typename ContextT::ConstValueRefT |
using | UseT = typename ContextT::UseT |
using | InstructionT = typename ContextT::InstructionT |
using | DominatorTreeT = typename ContextT::DominatorTreeT |
using | CycleInfoT = GenericCycleInfo< ContextT > |
using | CycleT = typename CycleInfoT::CycleT |
using | SyncDependenceAnalysisT = GenericSyncDependenceAnalysis< ContextT > |
using | DivergenceDescriptorT = typename SyncDependenceAnalysisT::DivergenceDescriptor |
using | BlockLabelMapT = typename SyncDependenceAnalysisT::BlockLabelMap |
Protected Attributes | |
---|---|
const ContextT & | Context |
const FunctionT & | F |
const CycleInfoT & | CI |
const TargetTransformInfo * | TTI = nullptr |
DenseSet< ConstValueRefT > | DivergentValues |
SmallPtrSet< const BlockT *, 32 > | DivergentTermBlocks |
std::vector< const InstructionT * > | Worklist |
template
class llvm::GenericUniformityAnalysisImpl< ContextT >
Analysis that identifies uniform values in a data-parallel execution.
This analysis propagates divergence in a data-parallel context from sources of divergence to all users. It can be instantiated for an IR that provides a suitable SSAContext.
Definition at line 327 of file GenericUniformityImpl.h.
◆ BlockLabelMapT
template
◆ BlockT
template
◆ ConstValueRefT
template
◆ CycleInfoT
template
◆ CycleT
template
◆ DivergenceDescriptorT
template
◆ DominatorTreeT
template
◆ FunctionT
template
◆ InstructionT
template
◆ SyncDependenceAnalysisT
template
◆ UseT
template
◆ ValueRefT
template
template
◆ addUniformOverride()
◆ analyzeControlDivergence()
template
Mark Term
as divergent and push all Instructions that become divergent as a result on the worklist.
Definition at line 1049 of file GenericUniformityImpl.h.
References A, assert(), B, llvm::CallingConv::C, llvm::dbgs(), llvm::getOutermostDivergentCycle(), llvm::insertIfNotContained(), llvm::DominatorTree::isReachableFromEntry(), LLVM_DEBUG, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::sort().
◆ compute()
template
◆ getFunction()
template
◆ hasDivergence()
template
◆ hasDivergentDefs() [1/3]
◆ hasDivergentDefs() [2/3]
◆ hasDivergentDefs() [3/3]
◆ hasDivergentTerminator()
template
◆ initialize() [1/3]
◆ initialize() [2/3]
◆ initialize() [3/3]
◆ isAlwaysUniform()
◆ isDivergent() [1/2]
template
◆ isDivergent() [2/2]
template
◆ isDivergentUse() [1/3]
◆ isDivergentUse() [2/3]
◆ isDivergentUse() [3/3]
◆ markDefsDivergent() [1/3]
◆ markDefsDivergent() [2/3]
Mark outputs of Instr
as divergent.
Returns
Whether the tracked divergence state of any output has changed.
◆ markDefsDivergent() [3/3]
◆ markDivergent() [1/2]
◆ markDivergent() [2/2]
◆ print()
◆ CI
template
◆ Context
template
◆ DivergentTermBlocks
template
◆ DivergentValues
template
◆ F
template
◆ TTI
template
◆ Worklist
template
The documentation for this class was generated from the following file:
- include/llvm/ADT/GenericUniformityImpl.h