LLVM 20.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 |
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. | |
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 >::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 1139 of file GenericUniformityImpl.h.
|
default |
|
default |
|
inline |
Definition at line 49 of file GenericUniformityInfo.h.
Referenced by llvm::computeMachineUniformityInfo(), and llvm::UniformityInfoWrapperPass::runOnFunction().
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().
bool llvm::GenericUniformityInfo< ContextT >::hasDivergence |
Whether any divergence was detected.
Definition at line 1214 of file GenericUniformityImpl.h.
bool llvm::GenericUniformityInfo< ContextT >::hasDivergentTerminator | ( | const BlockT & | B | ) |
Definition at line 1241 of file GenericUniformityImpl.h.
References B.
bool llvm::GenericUniformityInfo< ContextT >::isDivergent | ( | const InstructionT * | I | ) | const |
Definition at line 1231 of file GenericUniformityImpl.h.
References I.
bool llvm::GenericUniformityInfo< ContextT >::isDivergent | ( | ConstValueRefT | V | ) | const |
Whether V
is divergent at its definition.
Definition at line 1226 of file GenericUniformityImpl.h.
Referenced by llvm::FunctionLoweringInfo::CreateRegs(), llvm::SITargetLowering::isSDNodeSourceOfDivergence(), and llvm::GenericUniformityInfo< ContextT >::isUniform().
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.
|
inline |
Definition at line 70 of file GenericUniformityInfo.h.
References I, and llvm::GenericUniformityInfo< ContextT >::isDivergent().
|
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().
|
default |
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().