MLIR  20.0.0git
Public Member Functions | List of all members
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)
 Return true if operation A properly postdominates operation B. More...
 
bool postDominates (Operation *a, Operation *b)
 Return true if operation A postdominates operation B. More...
 
bool properlyPostDominates (Block *a, Block *b)
 Return true if the specified block A properly postdominates block B. More...
 
bool postDominates (Block *a, Block *b)
 Return true if the specified block A postdominates block B. More...
 
- Public Member Functions inherited from mlir::detail::DominanceInfoBase< true >
 DominanceInfoBase (Operation *op=nullptr)
 
 DominanceInfoBase (DominanceInfoBase &&)=default
 
 DominanceInfoBase (const DominanceInfoBase &)=delete
 
DominanceInfoBaseoperator= (DominanceInfoBase &&)=default
 
DominanceInfoBaseoperator= (const DominanceInfoBase &)=delete
 
 ~DominanceInfoBase ()
 
void invalidate ()
 Invalidate dominance info. More...
 
void invalidate (Region *region)
 
BlockfindNearestCommonDominator (Block *a, Block *b) const
 Finds the nearest common dominator block for the two given blocks a and b. More...
 
BlockfindNearestCommonDominator (BlockRangeT &&blocks) const
 Finds the nearest common dominator block for the given range of blocks. More...
 
DominanceInfoNodegetRootNode (Region *region)
 Get the root dominance node of the given region. More...
 
DominanceInfoNodegetNode (Block *a)
 Return the dominance node from the Region containing block A. More...
 
bool isReachableFromEntry (Block *a) const
 Return true if the specified block is reachable from the entry block of its region. More...
 
bool hasSSADominance (Block *block) const
 Return true if operations in the specified block are known to obey SSA dominance requirements. More...
 
bool hasSSADominance (Region *region) const
 Return true if operations in the specified block are known to obey SSA dominance requirements. More...
 
DomTree & getDomTree (Region *region) const
 

Additional Inherited Members

- Protected Types inherited from mlir::detail::DominanceInfoBase< true >
using super = DominanceInfoBase< IsPostDom >
 
- Protected Member Functions inherited from mlir::detail::DominanceInfoBase< true >
llvm::PointerIntPair< DomTree *, 1, bool > getDominanceInfo (Region *region, bool needsDomTree) const
 Return the dom tree and "hasSSADominance" bit for the given region. More...
 
bool properlyDominates (Block *a, Block *b) const
 Return true if the specified block A properly dominates block B. More...
 
- 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. More...
 

Detailed Description

A class for computing basic postdominance information.

Definition at line 195 of file Dominance.h.

Member Function Documentation

◆ postDominates() [1/2]

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

Return true if the specified block A postdominates block B.

Definition at line 213 of file Dominance.h.

◆ postDominates() [2/2]

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

Return true if operation A postdominates operation B.

Definition at line 203 of file Dominance.h.

Referenced by findUnusedStore().

◆ properlyPostDominates() [1/2]

bool mlir::PostDominanceInfo::properlyPostDominates ( Block a,
Block b 
)
inline

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

Definition at line 208 of file Dominance.h.

◆ properlyPostDominates() [2/2]

bool PostDominanceInfo::properlyPostDominates ( Operation a,
Operation b 
)

Return true if operation A properly postdominates operation B.

Returns true if statement 'a' properly postdominates statement b.

Definition at line 328 of file Dominance.cpp.

References mlir::Region::findAncestorOpInRegion(), mlir::Operation::getBlock(), mlir::Block::getParent(), and mlir::Operation::isBeforeInBlock().


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