LLVM 22.0.0git
|
#include "llvm/ADT/GenericUniformityInfo.h"
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 |
using | TemporalDivergenceTuple |
Public Member Functions | |
GenericUniformityInfo (const DominatorTreeT &DT, const CycleInfoT &CI, const TargetTransformInfo *TTI=nullptr) | |
GenericUniformityInfo ()=default | |
GenericUniformityInfo (GenericUniformityInfo &&)=default | |
GenericUniformityInfo & | operator= (GenericUniformityInfo &&)=default |
void | compute () |
bool | hasDivergence () const |
Whether any divergence was detected. | |
const FunctionT & | getFunction () 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. | |
iterator_range< TemporalDivergenceTuple * > | getTemporalDivergenceList () const |
Definition at line 29 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::BlockT = typename ContextT::BlockT |
Definition at line 31 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::ConstValueRefT = typename ContextT::ConstValueRefT |
Definition at line 34 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::CycleInfoT = GenericCycleInfo<ContextT> |
Definition at line 40 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::CycleT = typename CycleInfoT::CycleT |
Definition at line 41 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::DominatorTreeT = typename ContextT::DominatorTreeT |
Definition at line 37 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::FunctionT = typename ContextT::FunctionT |
Definition at line 32 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::InstructionT = typename ContextT::InstructionT |
Definition at line 36 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::TemporalDivergenceTuple |
Definition at line 43 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::ThisT = GenericUniformityInfo<ContextT> |
Definition at line 38 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::UseT = typename ContextT::UseT |
Definition at line 35 of file GenericUniformityInfo.h.
using llvm::GenericUniformityInfo< ContextT >::ValueRefT = typename ContextT::ValueRefT |
Definition at line 33 of file GenericUniformityInfo.h.
llvm::GenericUniformityInfo< ContextT >::GenericUniformityInfo | ( | const DominatorTreeT & | DT, |
const CycleInfoT & | CI, | ||
const TargetTransformInfo * | TTI = nullptr ) |
Definition at line 1162 of file GenericUniformityImpl.h.
|
default |
|
default |
|
inline |
Definition at line 52 of file GenericUniformityInfo.h.
Referenced by llvm::computeMachineUniformityInfo().
const ContextT::FunctionT & llvm::GenericUniformityInfo< ContextT >::getFunction | ( | ) | const |
The GPU kernel this analysis result is for.
Definition at line 1267 of file GenericUniformityImpl.h.
iterator_range< typename GenericUniformityInfo< ContextT >::TemporalDivergenceTuple * > llvm::GenericUniformityInfo< ContextT >::getTemporalDivergenceList | ( | ) | const |
Definition at line 1255 of file GenericUniformityImpl.h.
References llvm::make_range().
bool llvm::GenericUniformityInfo< ContextT >::hasDivergence | ( | ) | const |
Whether any divergence was detected.
Definition at line 1261 of file GenericUniformityImpl.h.
bool llvm::GenericUniformityInfo< ContextT >::hasDivergentTerminator | ( | const BlockT & | B | ) |
Definition at line 1288 of file GenericUniformityImpl.h.
References B().
bool llvm::GenericUniformityInfo< ContextT >::isDivergent | ( | const InstructionT * | I | ) | const |
Definition at line 1278 of file GenericUniformityImpl.h.
References I.
bool llvm::GenericUniformityInfo< ContextT >::isDivergent | ( | ConstValueRefT | V | ) | const |
Whether V
is divergent at its definition.
Definition at line 1273 of file GenericUniformityImpl.h.
Referenced by llvm::SITargetLowering::isSDNodeSourceOfDivergence(), llvm::GenericUniformityInfo< SSAContext >::isUniform(), llvm::GenericUniformityInfo< SSAContext >::isUniform(), and matchUniformityAndLLT().
bool llvm::GenericUniformityInfo< ContextT >::isDivergentUse | ( | const UseT & | U | ) | const |
Whether U
is divergent.
Uses of a uniform value can be divergent.
Definition at line 1283 of file GenericUniformityImpl.h.
|
inline |
Definition at line 73 of file GenericUniformityInfo.h.
|
inline |
Whether V
is uniform/non-divergent.
Definition at line 67 of file GenericUniformityInfo.h.
Referenced by llvm::AMDGPU::SetOfRulesForOpcode::findMappingForMI(), hasOnlyUniformBranches(), isUniformlyReached(), and matchUniformityAndLLT().
|
default |
void llvm::GenericUniformityInfo< ContextT >::print | ( | raw_ostream & | Out | ) | const |
T helper function for printing.
Definition at line 1294 of file GenericUniformityImpl.h.