32 MlirOperation a, MlirOperation
b) {
37 MlirValue a, MlirOperation
b) {
47 MlirBlock a, MlirBlock
b) {
64 return unwrap(info)->isReachableFromEntry(
unwrap(block));
68 unwrap(info)->invalidate();
84 MlirPostDominanceInfo info, MlirOperation a, MlirOperation
b) {
95 MlirBlock a, MlirBlock
b) {
100 MlirBlock a, MlirBlock
b) {
105 unwrap(info)->invalidate();
void mlirPostDominanceInfoInvalidate(MlirPostDominanceInfo info)
Invalidates all cached post-dominance information.
MlirDominanceInfo mlirDominanceInfoCreate(MlirOperation op)
Creates a DominanceInfo for the given operation (typically a FuncOp or ModuleOp).
MlirPostDominanceInfo mlirPostDominanceInfoCreate(MlirOperation op)
Creates a PostDominanceInfo for the given operation.
bool mlirDominanceInfoValueProperlyDominates(MlirDominanceInfo info, MlirValue a, MlirOperation b)
Returns true if value A properly dominates operation B.
bool mlirDominanceInfoIsReachableFromEntry(MlirDominanceInfo info, MlirBlock block)
Returns true if the given block is reachable from the entry block of its region.
bool mlirDominanceInfoDominatesOperation(MlirDominanceInfo info, MlirOperation a, MlirOperation b)
Returns true if operation A dominates operation B (A == B or A properly dominates B).
void mlirDominanceInfoInvalidate(MlirDominanceInfo info)
Invalidates all cached dominance information.
MlirBlock mlirDominanceInfoFindNearestCommonDominator(MlirDominanceInfo info, MlirBlock a, MlirBlock b)
Finds the nearest common dominator of blocks A and B.
bool mlirDominanceInfoProperlyDominatesOperation(MlirDominanceInfo info, MlirOperation a, MlirOperation b)
Returns true if operation A properly dominates operation B.
bool mlirDominanceInfoProperlyDominatesBlock(MlirDominanceInfo info, MlirBlock a, MlirBlock b)
Returns true if block A properly dominates block B.
bool mlirPostDominanceInfoPostDominatesBlock(MlirPostDominanceInfo info, MlirBlock a, MlirBlock b)
Returns true if block A post-dominates block B.
bool mlirPostDominanceInfoProperlyPostDominatesBlock(MlirPostDominanceInfo info, MlirBlock a, MlirBlock b)
Returns true if block A properly post-dominates block B.
void mlirPostDominanceInfoDestroy(MlirPostDominanceInfo info)
Destroys the given PostDominanceInfo.
bool mlirDominanceInfoDominatesBlock(MlirDominanceInfo info, MlirBlock a, MlirBlock b)
Returns true if block A dominates block B.
void mlirDominanceInfoDestroy(MlirDominanceInfo info)
Destroys the given DominanceInfo.
bool mlirDominanceInfoValueDominates(MlirDominanceInfo info, MlirValue a, MlirOperation b)
Returns true if value A dominates operation B (the operation defining A is B or A properly dominates ...
bool mlirPostDominanceInfoPostDominatesOperation(MlirPostDominanceInfo info, MlirOperation a, MlirOperation b)
Returns true if operation A post-dominates operation B.
bool mlirPostDominanceInfoProperlyPostDominatesOperation(MlirPostDominanceInfo info, MlirOperation a, MlirOperation b)
Returns true if operation A properly post-dominates operation B.
A class for computing basic dominance information.
A class for computing basic postdominance information.
MlirDiagnostic wrap(mlir::Diagnostic &diagnostic)
mlir::Diagnostic & unwrap(MlirDiagnostic diagnostic)
Include the generated interface declarations.