LLVM 20.0.0git
Public Types | Public Member Functions | List of all members
llvm::GenericUniformityInfo< ContextT > Class Template Reference

#include "llvm/ADT/GenericUniformityInfo.h"

Inheritance diagram for llvm::GenericUniformityInfo< ContextT >:
Inheritance graph
[legend]

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 ThisT = GenericUniformityInfo< ContextT >
 
using CycleInfoT = GenericCycleInfo< ContextT >
 
using CycleT = typename CycleInfoT::CycleT
 

Public Member Functions

 GenericUniformityInfo (const DominatorTreeT &DT, const CycleInfoT &CI, const TargetTransformInfo *TTI=nullptr)
 
 GenericUniformityInfo ()=default
 
 GenericUniformityInfo (GenericUniformityInfo &&)=default
 
GenericUniformityInfooperator= (GenericUniformityInfo &&)=default
 
void compute ()
 
bool hasDivergence () const
 Whether any divergence was detected.
 
const FunctionTgetFunction () const
 The GPU kernel this analysis result is for.
 
bool isDivergent (ConstValueRefT V) const
 Whether V is divergent at its definition.
 
bool isUniform (ConstValueRefT V) const
 Whether V is uniform/non-divergent.
 
bool isUniform (const InstructionT *I) const
 
bool isDivergent (const InstructionT *I) const
 
bool isDivergentUse (const UseT &U) const
 Whether U is divergent.
 
bool hasDivergentTerminator (const BlockT &B)
 
void print (raw_ostream &Out) const
 T helper function for printing.
 

Detailed Description

template<typename ContextT>
class llvm::GenericUniformityInfo< ContextT >

Definition at line 29 of file GenericUniformityInfo.h.

Member Typedef Documentation

◆ BlockT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::BlockT = typename ContextT::BlockT

Definition at line 31 of file GenericUniformityInfo.h.

◆ ConstValueRefT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::ConstValueRefT = typename ContextT::ConstValueRefT

Definition at line 34 of file GenericUniformityInfo.h.

◆ CycleInfoT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::CycleInfoT = GenericCycleInfo<ContextT>

Definition at line 40 of file GenericUniformityInfo.h.

◆ CycleT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::CycleT = typename CycleInfoT::CycleT

Definition at line 41 of file GenericUniformityInfo.h.

◆ DominatorTreeT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::DominatorTreeT = typename ContextT::DominatorTreeT

Definition at line 37 of file GenericUniformityInfo.h.

◆ FunctionT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::FunctionT = typename ContextT::FunctionT

Definition at line 32 of file GenericUniformityInfo.h.

◆ InstructionT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::InstructionT = typename ContextT::InstructionT

Definition at line 36 of file GenericUniformityInfo.h.

◆ ThisT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::ThisT = GenericUniformityInfo<ContextT>

Definition at line 38 of file GenericUniformityInfo.h.

◆ UseT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::UseT = typename ContextT::UseT

Definition at line 35 of file GenericUniformityInfo.h.

◆ ValueRefT

template<typename ContextT >
using llvm::GenericUniformityInfo< ContextT >::ValueRefT = typename ContextT::ValueRefT

Definition at line 33 of file GenericUniformityInfo.h.

Constructor & Destructor Documentation

◆ GenericUniformityInfo() [1/3]

template<typename ContextT >
llvm::GenericUniformityInfo< ContextT >::GenericUniformityInfo ( const DominatorTreeT DT,
const CycleInfoT CI,
const TargetTransformInfo TTI = nullptr 
)

Definition at line 1139 of file GenericUniformityImpl.h.

◆ GenericUniformityInfo() [2/3]

template<typename ContextT >
llvm::GenericUniformityInfo< ContextT >::GenericUniformityInfo ( )
default

◆ GenericUniformityInfo() [3/3]

template<typename ContextT >
llvm::GenericUniformityInfo< ContextT >::GenericUniformityInfo ( GenericUniformityInfo< ContextT > &&  )
default

Member Function Documentation

◆ compute()

template<typename ContextT >
void llvm::GenericUniformityInfo< ContextT >::compute ( )
inline

◆ getFunction()

template<typename ContextT >
const ContextT::FunctionT & llvm::GenericUniformityInfo< ContextT >::getFunction

The GPU kernel this analysis result is for.

Definition at line 1220 of file GenericUniformityImpl.h.

Referenced by llvm::MachineUniformityAnalysisPass::print().

◆ hasDivergence()

template<typename ContextT >
bool llvm::GenericUniformityInfo< ContextT >::hasDivergence

Whether any divergence was detected.

Definition at line 1214 of file GenericUniformityImpl.h.

◆ hasDivergentTerminator()

template<typename ContextT >
bool llvm::GenericUniformityInfo< ContextT >::hasDivergentTerminator ( const BlockT B)

Definition at line 1241 of file GenericUniformityImpl.h.

References B.

◆ isDivergent() [1/2]

template<typename ContextT >
bool llvm::GenericUniformityInfo< ContextT >::isDivergent ( const InstructionT I) const

Definition at line 1231 of file GenericUniformityImpl.h.

References I.

◆ isDivergent() [2/2]

template<typename ContextT >
bool llvm::GenericUniformityInfo< ContextT >::isDivergent ( ConstValueRefT  V) const

◆ isDivergentUse()

template<typename ContextT >
bool llvm::GenericUniformityInfo< ContextT >::isDivergentUse ( const UseT U) const

Whether U is divergent.

Uses of a uniform value can be divergent.

Definition at line 1236 of file GenericUniformityImpl.h.

◆ isUniform() [1/2]

template<typename ContextT >
bool llvm::GenericUniformityInfo< ContextT >::isUniform ( const InstructionT I) const
inline

◆ isUniform() [2/2]

template<typename ContextT >
bool llvm::GenericUniformityInfo< ContextT >::isUniform ( ConstValueRefT  V) const
inline

Whether V is uniform/non-divergent.

Definition at line 64 of file GenericUniformityInfo.h.

References llvm::GenericUniformityInfo< ContextT >::isDivergent().

Referenced by hasOnlyUniformBranches(), and isUniformlyReached().

◆ operator=()

template<typename ContextT >
GenericUniformityInfo & llvm::GenericUniformityInfo< ContextT >::operator= ( GenericUniformityInfo< ContextT > &&  )
default

◆ print()

template<typename ContextT >
void llvm::GenericUniformityInfo< ContextT >::print ( raw_ostream Out) const

T helper function for printing.

Definition at line 1247 of file GenericUniformityImpl.h.

Referenced by llvm::MachineUniformityAnalysisPass::print().


The documentation for this class was generated from the following files: