LLVM 22.0.0git
llvm::SPIRV::ConvergenceRegion Class Reference

#include "Target/SPIRV/Analysis/SPIRVConvergenceRegionAnalysis.h"

Public Member Functions

 ConvergenceRegion (DominatorTree &DT, LoopInfo &LI, Function &F)
 ConvergenceRegion (DominatorTree &DT, LoopInfo &LI, std::optional< IntrinsicInst * > ConvergenceToken, BasicBlock *Entry, SmallPtrSet< BasicBlock *, 8 > &&Blocks, SmallPtrSet< BasicBlock *, 2 > &&Exits)
 ConvergenceRegion (ConvergenceRegion &&CR)
 ~ConvergenceRegion ()
ConvergenceRegionoperator= (ConvergenceRegion &&CR)=delete
 ConvergenceRegion (const ConvergenceRegion &other)=delete
ConvergenceRegionoperator= (const ConvergenceRegion &other)=delete
bool contains (const BasicBlock *BB) const
void releaseMemory ()
void dump (const unsigned IndentSize=0) const

Public Attributes

ConvergenceRegionParent = nullptr
SmallVector< ConvergenceRegion * > Children = {}
std::optional< IntrinsicInst * > ConvergenceToken = std::nullopt
BasicBlockEntry = nullptr
SmallPtrSet< BasicBlock *, 2 > Exits = {}
SmallPtrSet< BasicBlock *, 8 > Blocks = {}

Detailed Description

Definition at line 41 of file SPIRVConvergenceRegionAnalysis.h.

Constructor & Destructor Documentation

◆ ConvergenceRegion() [1/4]

ConvergenceRegion::ConvergenceRegion ( DominatorTree & DT,
LoopInfo & LI,
Function & F )

◆ ConvergenceRegion() [2/4]

ConvergenceRegion::ConvergenceRegion ( DominatorTree & DT,
LoopInfo & LI,
std::optional< IntrinsicInst * > ConvergenceToken,
BasicBlock * Entry,
SmallPtrSet< BasicBlock *, 8 > && Blocks,
SmallPtrSet< BasicBlock *, 2 > && Exits )

◆ ConvergenceRegion() [3/4]

llvm::SPIRV::ConvergenceRegion::ConvergenceRegion ( ConvergenceRegion && CR)
inline

◆ ~ConvergenceRegion()

llvm::SPIRV::ConvergenceRegion::~ConvergenceRegion ( )
inline

Definition at line 76 of file SPIRVConvergenceRegionAnalysis.h.

References releaseMemory().

◆ ConvergenceRegion() [4/4]

llvm::SPIRV::ConvergenceRegion::ConvergenceRegion ( const ConvergenceRegion & other)
delete

References ConvergenceRegion().

Member Function Documentation

◆ contains()

bool llvm::SPIRV::ConvergenceRegion::contains ( const BasicBlock * BB) const
inline

Definition at line 84 of file SPIRVConvergenceRegionAnalysis.h.

References Blocks.

◆ dump()

void ConvergenceRegion::dump ( const unsigned IndentSize = 0) const

◆ operator=() [1/2]

ConvergenceRegion & llvm::SPIRV::ConvergenceRegion::operator= ( const ConvergenceRegion & other)
delete

References ConvergenceRegion().

◆ operator=() [2/2]

ConvergenceRegion & llvm::SPIRV::ConvergenceRegion::operator= ( ConvergenceRegion && CR)
delete

References ConvergenceRegion().

◆ releaseMemory()

void ConvergenceRegion::releaseMemory ( )

Definition at line 135 of file SPIRVConvergenceRegionAnalysis.cpp.

References Children, and Parent.

Referenced by ~ConvergenceRegion().

Member Data Documentation

◆ Blocks

SmallPtrSet<BasicBlock *, 8> llvm::SPIRV::ConvergenceRegion::Blocks = {}

◆ Children

SmallVector<ConvergenceRegion *> llvm::SPIRV::ConvergenceRegion::Children = {}

◆ ConvergenceToken

std::optional<IntrinsicInst *> llvm::SPIRV::ConvergenceRegion::ConvergenceToken = std::nullopt

◆ Entry

BasicBlock* llvm::SPIRV::ConvergenceRegion::Entry = nullptr

◆ Exits

SmallPtrSet<BasicBlock *, 2> llvm::SPIRV::ConvergenceRegion::Exits = {}

◆ Parent

ConvergenceRegion* llvm::SPIRV::ConvergenceRegion::Parent = nullptr

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