class DominanceFrontierBase

Declaration

template <class BlockT, bool IsPostDom>
class DominanceFrontierBase { /* full declaration omitted */ };

Description

DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function.

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:41

Templates

BlockT
bool IsPostDom

Member Variables

protected llvm::DominanceFrontierBase::DomSetMapType Frontiers
protected SmallVector<BlockT*, IsPostDom ? 4 : 1> Roots
protected static const bool IsPostDominators = IsPostDom

Method Overview

  • public DominanceFrontierBase<BlockT, IsPostDom>()
  • public llvm::DominanceFrontierBase::iterator addBasicBlock(BlockT * BB, const llvm::DominanceFrontierBase::DomSetType & frontier)
  • public void addToFrontier(llvm::DominanceFrontierBase::iterator I, BlockT * Node)
  • public llvm::DominanceFrontierBase::iterator begin()
  • public llvm::DominanceFrontierBase::const_iterator begin() const
  • public bool compare(DominanceFrontierBase<BlockT, IsPostDom> & Other) const
  • public bool compareDomSet(llvm::DominanceFrontierBase::DomSetType & DS1, const llvm::DominanceFrontierBase::DomSetType & DS2) const
  • public void dump() const
  • public llvm::DominanceFrontierBase::iterator end()
  • public llvm::DominanceFrontierBase::const_iterator end() const
  • public llvm::DominanceFrontierBase::iterator find(BlockT * B)
  • public llvm::DominanceFrontierBase::const_iterator find(BlockT * B) const
  • public BlockT * getRoot() const
  • public const SmallVectorImpl<BlockT *> & getRoots() const
  • public bool isPostDominator() const
  • public void print(llvm::raw_ostream & OS) const
  • public void releaseMemory()
  • public void removeBlock(BlockT * BB)
  • public void removeFromFrontier(llvm::DominanceFrontierBase::iterator I, BlockT * Node)

Methods

DominanceFrontierBase<BlockT, IsPostDom>()

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:55

llvm::DominanceFrontierBase::iterator
addBasicBlock(
    BlockT* BB,
    const llvm::DominanceFrontierBase::DomSetType&
        frontier)

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:87

Parameters

BlockT* BB
const llvm::DominanceFrontierBase::DomSetType& frontier

void addToFrontier(
    llvm::DominanceFrontierBase::iterator I,
    BlockT* Node)

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:95

Parameters

llvm::DominanceFrontierBase::iterator I
BlockT* Node

llvm::DominanceFrontierBase::iterator begin()

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:80

llvm::DominanceFrontierBase::const_iterator
begin() const

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:81

bool compare(
    DominanceFrontierBase<BlockT, IsPostDom>&
        Other) const

Description

compare - Return true if the other dominance frontier base matches this dominance frontier base. Otherwise return false.

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:105

Parameters

DominanceFrontierBase<BlockT, IsPostDom>& Other

bool compareDomSet(
    llvm::DominanceFrontierBase::DomSetType& DS1,
    const llvm::DominanceFrontierBase::DomSetType&
        DS2) const

Description

compareDomSet - Return false if two domsets match. Otherwise return true;

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:101

Parameters

llvm::DominanceFrontierBase::DomSetType& DS1
const llvm::DominanceFrontierBase::DomSetType& DS2

void dump() const

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:113

llvm::DominanceFrontierBase::iterator end()

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:82

llvm::DominanceFrontierBase::const_iterator end()
    const

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:83

llvm::DominanceFrontierBase::iterator find(
    BlockT* B)

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:84

Parameters

BlockT* B

llvm::DominanceFrontierBase::const_iterator find(
    BlockT* B) const

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:85

Parameters

BlockT* B

BlockT* getRoot() const

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:62

const SmallVectorImpl<BlockT*>& getRoots() const

Description

getRoots - Return the root blocks of the current CFG. This may include multiple blocks if we are computing post dominators. For forward dominators, this will always be a single block (the entry node).

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:60

bool isPostDominator() const

Description

isPostDominator - Returns true if analysis based of postdoms

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:68

void print(llvm::raw_ostream& OS) const

Description

print - Convert to human readable form

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:109

Parameters

llvm::raw_ostream& OS

void releaseMemory()

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:72

void removeBlock(BlockT* BB)

Description

removeBlock - Remove basic block BB's frontier.

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:93

Parameters

BlockT* BB

void removeFromFrontier(
    llvm::DominanceFrontierBase::iterator I,
    BlockT* Node)

Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:97

Parameters

llvm::DominanceFrontierBase::iterator I
BlockT* Node