LLVM 22.0.0git
llvm::GenericUniformityInfo< ContextT > Class Template Reference

#include "llvm/ADT/GenericUniformityInfo.h"

Inheritance diagram for llvm::GenericUniformityInfo< ContextT >:
[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
using TemporalDivergenceTuple

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.
iterator_range< TemporalDivergenceTuple * > getTemporalDivergenceList () const

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.

◆ TemporalDivergenceTuple

template<typename ContextT>
using llvm::GenericUniformityInfo< ContextT >::TemporalDivergenceTuple
Initial value:
std::tuple<ConstValueRefT, InstructionT *, const CycleT *>

Definition at line 43 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 1162 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

Definition at line 52 of file GenericUniformityInfo.h.

Referenced by llvm::computeMachineUniformityInfo().

◆ getFunction()

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

The GPU kernel this analysis result is for.

Definition at line 1267 of file GenericUniformityImpl.h.

◆ getTemporalDivergenceList()

template<typename ContextT>
iterator_range< typename GenericUniformityInfo< ContextT >::TemporalDivergenceTuple * > llvm::GenericUniformityInfo< ContextT >::getTemporalDivergenceList ( ) const

Definition at line 1255 of file GenericUniformityImpl.h.

References llvm::make_range().

◆ hasDivergence()

template<typename ContextT>
bool llvm::GenericUniformityInfo< ContextT >::hasDivergence ( ) const

Whether any divergence was detected.

Definition at line 1261 of file GenericUniformityImpl.h.

◆ hasDivergentTerminator()

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

Definition at line 1288 of file GenericUniformityImpl.h.

References B().

◆ isDivergent() [1/2]

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

Definition at line 1278 of file GenericUniformityImpl.h.

References I.

◆ isDivergent() [2/2]

◆ 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 1283 of file GenericUniformityImpl.h.

◆ isUniform() [1/2]

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

Definition at line 73 of file GenericUniformityInfo.h.

◆ isUniform() [2/2]

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

◆ 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 1294 of file GenericUniformityImpl.h.


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