class RegionInfoBase

Declaration

template <class Tr>
class RegionInfoBase { /* full declaration omitted */ };

Description

Analysis that detects all canonical Regions. The RegionInfo pass detects all canonical regions in a function. The Regions are connected using the parent relation. This builds a Program Structure Tree.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:676

Templates

Tr

Member Variables

public static bool VerifyRegionInfo
public static typename RegionT::PrintStyle printStyle

Method Overview

  • public RegionInfoBase<RegionTr>(const RegionInfoBase<RegionTr> &)
  • public void clearNodeCache()
  • public void dump() const
  • public llvm::RegionInfoBase::RegionT * getCommonRegion(llvm::RegionInfoBase::RegionT * A, llvm::RegionInfoBase::RegionT * B) const
  • public llvm::RegionInfoBase::RegionT * getCommonRegion(llvm::RegionInfoBase::BlockT * A, llvm::RegionInfoBase::BlockT * B) const
  • public llvm::RegionInfoBase::RegionT * getCommonRegion(SmallVectorImpl<llvm::RegionInfoBase::RegionT *> & Regions) const
  • public llvm::RegionInfoBase::RegionT * getCommonRegion(SmallVectorImpl<llvm::RegionInfoBase::BlockT *> & BBs) const
  • public llvm::RegionInfoBase::BlockT * getMaxRegionExit(llvm::RegionInfoBase::BlockT * BB) const
  • public llvm::RegionInfoBase::RegionT * getRegionFor(llvm::RegionInfoBase::BlockT * BB) const
  • public llvm::RegionInfoBase::RegionT * getTopLevelRegion() const
  • public void print(llvm::raw_ostream & OS) const
  • public void releaseMemory()
  • public void setRegionFor(llvm::RegionInfoBase::BlockT * BB, llvm::RegionInfoBase::RegionT * R)
  • protected template <typename TheRegionT>void updateRegionTree(llvm::RegionInfoBase::RegionInfoT & RI, TheRegionT * R)
  • public void verifyAnalysis() const

Methods

RegionInfoBase<RegionTr>(
    const RegionInfoBase<RegionTr>&)

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:801

Parameters

const RegionInfoBase<RegionTr>&

void clearNodeCache()

Description

Clear the Node Cache for all Regions.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:873

void dump() const

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:809

llvm::RegionInfoBase::RegionT* getCommonRegion(
    llvm::RegionInfoBase::RegionT* A,
    llvm::RegionInfoBase::RegionT* B) const

Description

Find the smallest region that contains two regions.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:845

Parameters

llvm::RegionInfoBase::RegionT* A
The first region.
llvm::RegionInfoBase::RegionT* B
The second region.

Returns

The smallest region containing A and B.

llvm::RegionInfoBase::RegionT* getCommonRegion(
    llvm::RegionInfoBase::BlockT* A,
    llvm::RegionInfoBase::BlockT* B) const

Description

Find the smallest region that contains two basic blocks.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:852

Parameters

llvm::RegionInfoBase::BlockT* A
The first basic block.
llvm::RegionInfoBase::BlockT* B
The second basic block.

Returns

The smallest region that contains A and B.

llvm::RegionInfoBase::RegionT* getCommonRegion(
    SmallVectorImpl<
        llvm::RegionInfoBase::RegionT*>& Regions)
    const

Description

Find the smallest region that contains a set of regions.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:860

Parameters

SmallVectorImpl<llvm::RegionInfoBase::RegionT*>& Regions
A vector of regions.

Returns

The smallest region that contains all regions in Regions.

llvm::RegionInfoBase::RegionT* getCommonRegion(
    SmallVectorImpl<
        llvm::RegionInfoBase::BlockT*>& BBs) const

Description

Find the smallest region that contains a set of basic blocks.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:866

Parameters

SmallVectorImpl<llvm::RegionInfoBase::BlockT*>& BBs
A vector of basic blocks.

Returns

The smallest region that contains all basic blocks in BBS.

llvm::RegionInfoBase::BlockT* getMaxRegionExit(
    llvm::RegionInfoBase::BlockT* BB) const

Description

Return the exit of the maximal refined region, that starts at a BasicBlock.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:838

Parameters

llvm::RegionInfoBase::BlockT* BB
The BasicBlock the refined region starts.

llvm::RegionInfoBase::RegionT* getRegionFor(
    llvm::RegionInfoBase::BlockT* BB) const

Description

Get the smallest region that contains a BasicBlock.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:819

Parameters

llvm::RegionInfoBase::BlockT* BB
The basic block.

Returns

The smallest region, that contains BB or NULL, if there is no region containing BB.

llvm::RegionInfoBase::RegionT* getTopLevelRegion()
    const

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:868

void print(llvm::raw_ostream& OS) const

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:807

Parameters

llvm::raw_ostream& OS

void releaseMemory()

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:812

void setRegionFor(
    llvm::RegionInfoBase::BlockT* BB,
    llvm::RegionInfoBase::RegionT* R)

Description

Set the smallest region that surrounds a basic block.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:825

Parameters

llvm::RegionInfoBase::BlockT* BB
The basic block surrounded by a region.
llvm::RegionInfoBase::RegionT* R
The smallest region that surrounds BB.

template <typename TheRegionT>
void updateRegionTree(
    llvm::RegionInfoBase::RegionInfoT& RI,
    TheRegionT* R)

Description

Update refences to a RegionInfoT held by the RegionT managed here This is a post-move helper. Regions hold references to the owning RegionInfo object. After a move these need to be fixed.

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:733

Templates

TheRegionT

Parameters

llvm::RegionInfoBase::RegionInfoT& RI
TheRegionT* R

void verifyAnalysis() const

Declared at: llvm/include/llvm/Analysis/RegionInfo.h:878