MLIR
20.0.0git
|
A class for computing basic postdominance information. More...
#include "mlir/IR/Dominance.h"
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 | |
DominanceInfoBase & | operator= (DominanceInfoBase &&)=default |
DominanceInfoBase & | operator= (const DominanceInfoBase &)=delete |
~DominanceInfoBase () | |
void | invalidate () |
Invalidate dominance info. More... | |
void | invalidate (Region *region) |
Block * | findNearestCommonDominator (Block *a, Block *b) const |
Finds the nearest common dominator block for the two given blocks a and b. More... | |
Block * | findNearestCommonDominator (BlockRangeT &&blocks) const |
Finds the nearest common dominator block for the given range of blocks. More... | |
DominanceInfoNode * | getRootNode (Region *region) |
Get the root dominance node of the given region. More... | |
DominanceInfoNode * | getNode (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... | |
A class for computing basic postdominance information.
Definition at line 195 of file Dominance.h.
Return true if the specified block A postdominates block B.
Definition at line 213 of file Dominance.h.
Return true if operation A postdominates operation B.
Definition at line 203 of file Dominance.h.
Referenced by findUnusedStore().
Return true if the specified block A properly postdominates block B.
Definition at line 208 of file Dominance.h.
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().