LLVM: llvm::DivergencePropagator< ContextT > Class Template Reference (original) (raw)

Compute divergence starting with a divergent branch. More...

#include "[llvm/ADT/GenericUniformityImpl.h](GenericUniformityImpl%5F8h%5Fsource.html)"

Public Types
using BlockT = typename ContextT::BlockT
using DominatorTreeT = typename ContextT::DominatorTreeT
using FunctionT = typename ContextT::FunctionT
using ValueRefT = typename ContextT::ValueRefT
using CycleInfoT = GenericCycleInfo
using CycleT = typename CycleInfoT::CycleT
using ModifiedPO = ModifiedPostOrder
using SyncDependenceAnalysisT = GenericSyncDependenceAnalysis
using DivergenceDescriptorT
using BlockLabelMapT = typename SyncDependenceAnalysisT::BlockLabelMap
Public Member Functions
DivergencePropagator (const ModifiedPO &CyclePOT, const DominatorTreeT &DT, const CycleInfoT &CI, const BlockT &DivTermBlock)
void printDefs (raw_ostream &Out)
bool computeJoin (const BlockT &SuccBlock, const BlockT &PushedLabel)
bool visitCycleExitEdge (const BlockT &ExitBlock, const BlockT &Label)
bool visitEdge (const BlockT &SuccBlock, const BlockT &Label)
std::unique_ptr< DivergenceDescriptorT > computeJoinPoints ()
Public Attributes
const ModifiedPO & CyclePOT
const DominatorTreeT & DT
const CycleInfoT & CI
const BlockT & DivTermBlock
const ContextT & Context
SparseBitVector FreshLabels
std::unique_ptr< DivergenceDescriptorT > DivDesc
BlockLabelMapT & BlockLabels

template
class llvm::DivergencePropagator< ContextT >

Compute divergence starting with a divergent branch.

Definition at line 483 of file GenericUniformityImpl.h.

BlockLabelMapT

template

BlockT

template

CycleInfoT

template

CycleT

template

DivergenceDescriptorT

template

DominatorTreeT

template

FunctionT

template

ModifiedPO

template

SyncDependenceAnalysisT

template

ValueRefT

template

template

computeJoin()

template

computeJoinPoints()

template

Definition at line 598 of file GenericUniformityImpl.h.

References assert(), llvm::Block, BlockLabels, llvm::CallingConv::C, CI, Context, CyclePOT, llvm::dbgs(), DivDesc, DivTermBlock, FreshLabels, LLVM_DEBUG, P, printDefs(), llvm::successors(), visitCycleExitEdge(), and visitEdge().

Referenced by llvm::GenericSyncDependenceAnalysis< ContextT >::getJoinBlocks().

printDefs()

template

visitCycleExitEdge()

template

visitEdge()

template

BlockLabels

template

CI

template

Context

template

CyclePOT

template

DivDesc

template

DivTermBlock

template

DT

template

FreshLabels

template


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