MLIR 22.0.0git
mlir::PostDominanceInfo Class Reference

A class for computing basic postdominance information. More...

#include "mlir/IR/Dominance.h"

Inheritance diagram for mlir::PostDominanceInfo:

Public Member Functions

bool properlyPostDominates (Operation *a, Operation *b, bool enclosingOpOk=true) const
 Return true if operation A properly postdominates operation B.
bool postDominates (Operation *a, Operation *b) const
 Return true if operation A postdominates operation B.
bool properlyPostDominates (Block *a, Block *b) const
 Return true if the specified block A properly postdominates block B.
bool postDominates (Block *a, Block *b) const
 Return true if the specified block A postdominates block B.
bool properlyPostDominates (Block *aBlock, Block::iterator aIt, Block *bBlock, Block::iterator bIt, bool enclosingOk=true) const
bool postDominates (Block *aBlock, Block::iterator aIt, Block *bBlock, Block::iterator bIt, bool enclosingOk=true) const
Public Member Functions inherited from mlir::detail::DominanceInfoBase< true >
 DominanceInfoBase (Operation *op=nullptr)
DominanceInfoBaseoperator= (DominanceInfoBase &&)=default
 ~DominanceInfoBase ()
void invalidate ()
 Invalidate dominance info.
BlockfindNearestCommonDominator (Block *a, Block *b) const
 Finds the nearest common dominator block for the two given blocks a and b.
DominanceInfoNodegetRootNode (Region *region)
 Get the root dominance node of the given region.
DominanceInfoNodegetNode (Block *a)
 Return the dominance node from the Region containing block A.
bool isReachableFromEntry (Block *a) const
 Return true if the specified block is reachable from the entry block of its region.
bool hasSSADominance (Block *block) const
 Return true if operations in the specified block are known to obey SSA dominance requirements.
DomTree & getDomTree (Region *region) const

Additional Inherited Members

Protected Types inherited from mlir::detail::DominanceInfoBase< true >
using super
Protected Member Functions inherited from mlir::detail::DominanceInfoBase< true >
llvm::PointerIntPair< DomTree *, 1, boolgetDominanceInfo (Region *region, bool needsDomTree) const
 Return the dom tree and "hasSSADominance" bit for the given region.
bool properlyDominatesImpl (Block *aBlock, Block::iterator aIt, Block *bBlock, Block::iterator bIt, bool enclosingOk=true) const
 Return "true" if block iterator A properly (post)dominates block iterator B.
Protected Attributes inherited from mlir::detail::DominanceInfoBase< true >
DenseMap< Region *, llvm::PointerIntPair< DomTree *, 1, bool > > dominanceInfos
 A mapping of regions to their base dominator tree and a cached "hasSSADominance" bit.

Detailed Description

A class for computing basic postdominance information.

Definition at line 204 of file Dominance.h.

Member Function Documentation

◆ postDominates() [1/3]

bool mlir::PostDominanceInfo::postDominates ( Block * a,
Block * b ) const
inline

Return true if the specified block A postdominates block B.

Definition at line 221 of file Dominance.h.

References b, and properlyPostDominates().

◆ postDominates() [2/3]

bool mlir::PostDominanceInfo::postDominates ( Block * aBlock,
Block::iterator aIt,
Block * bBlock,
Block::iterator bIt,
bool enclosingOk = true ) const
inline

◆ postDominates() [3/3]

bool mlir::PostDominanceInfo::postDominates ( Operation * a,
Operation * b ) const
inline

Return true if operation A postdominates operation B.

Definition at line 213 of file Dominance.h.

References b, and properlyPostDominates().

Referenced by mlir::acc::createLegalizeDataValuesInRegion(), and findUnusedStore().

◆ properlyPostDominates() [1/3]

bool PostDominanceInfo::properlyPostDominates ( Block * a,
Block * b ) const

Return true if the specified block A properly postdominates block B.

Definition at line 360 of file Dominance.cpp.

References b, mlir::Block::end(), and mlir::detail::DominanceInfoBase< IsPostDom >::properlyDominatesImpl().

◆ properlyPostDominates() [2/3]

bool mlir::PostDominanceInfo::properlyPostDominates ( Block * aBlock,
Block::iterator aIt,
Block * bBlock,
Block::iterator bIt,
bool enclosingOk = true ) const
inline

◆ properlyPostDominates() [3/3]

bool PostDominanceInfo::properlyPostDominates ( Operation * a,
Operation * b,
bool enclosingOpOk = true ) const

Return true if operation A properly postdominates operation B.

Definition at line 353 of file Dominance.cpp.

References b, mlir::Operation::getBlock(), and mlir::detail::DominanceInfoBase< IsPostDom >::properlyDominatesImpl().

Referenced by postDominates(), and postDominates().


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