MLIR 23.0.0git
Dominance.cpp File Reference
#include "mlir-c/Dominance.h"
#include "mlir/CAPI/Dominance.h"
#include "mlir/CAPI/IR.h"

Go to the source code of this file.

Functions

MlirDominanceInfo mlirDominanceInfoCreate (MlirOperation op)
 Creates a DominanceInfo for the given operation (typically a FuncOp or ModuleOp).
void mlirDominanceInfoDestroy (MlirDominanceInfo info)
 Destroys the given DominanceInfo.
bool mlirDominanceInfoProperlyDominatesOperation (MlirDominanceInfo info, MlirOperation a, MlirOperation b)
 Returns true if operation A properly dominates operation B.
bool mlirDominanceInfoDominatesOperation (MlirDominanceInfo info, MlirOperation a, MlirOperation b)
 Returns true if operation A dominates operation B (A == B or A properly dominates B).
bool mlirDominanceInfoValueProperlyDominates (MlirDominanceInfo info, MlirValue a, MlirOperation b)
 Returns true if value A properly dominates operation B.
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 B).
bool mlirDominanceInfoProperlyDominatesBlock (MlirDominanceInfo info, MlirBlock a, MlirBlock b)
 Returns true if block A properly dominates block B.
bool mlirDominanceInfoDominatesBlock (MlirDominanceInfo info, MlirBlock a, MlirBlock b)
 Returns true if block A dominates block B.
MlirBlock mlirDominanceInfoFindNearestCommonDominator (MlirDominanceInfo info, MlirBlock a, MlirBlock b)
 Finds the nearest common dominator of blocks A and B.
bool mlirDominanceInfoIsReachableFromEntry (MlirDominanceInfo info, MlirBlock block)
 Returns true if the given block is reachable from the entry block of its region.
void mlirDominanceInfoInvalidate (MlirDominanceInfo info)
 Invalidates all cached dominance information.
MlirPostDominanceInfo mlirPostDominanceInfoCreate (MlirOperation op)
 Creates a PostDominanceInfo for the given operation.
void mlirPostDominanceInfoDestroy (MlirPostDominanceInfo info)
 Destroys the given PostDominanceInfo.
bool mlirPostDominanceInfoProperlyPostDominatesOperation (MlirPostDominanceInfo info, MlirOperation a, MlirOperation b)
 Returns true if operation A properly post-dominates operation B.
bool mlirPostDominanceInfoPostDominatesOperation (MlirPostDominanceInfo info, MlirOperation a, MlirOperation b)
 Returns true if operation A post-dominates operation B.
bool mlirPostDominanceInfoProperlyPostDominatesBlock (MlirPostDominanceInfo info, MlirBlock a, MlirBlock b)
 Returns true if block A properly post-dominates block B.
bool mlirPostDominanceInfoPostDominatesBlock (MlirPostDominanceInfo info, MlirBlock a, MlirBlock b)
 Returns true if block A post-dominates block B.
void mlirPostDominanceInfoInvalidate (MlirPostDominanceInfo info)
 Invalidates all cached post-dominance information.

Function Documentation

◆ mlirDominanceInfoCreate()

MlirDominanceInfo mlirDominanceInfoCreate ( MlirOperation op)

Creates a DominanceInfo for the given operation (typically a FuncOp or ModuleOp).

The caller owns the returned object and must destroy it.

Definition at line 19 of file Dominance.cpp.

References unwrap(), and wrap().

◆ mlirDominanceInfoDestroy()

void mlirDominanceInfoDestroy ( MlirDominanceInfo info)

Destroys the given DominanceInfo.

Definition at line 23 of file Dominance.cpp.

References unwrap().

◆ mlirDominanceInfoDominatesBlock()

bool mlirDominanceInfoDominatesBlock ( MlirDominanceInfo info,
MlirBlock a,
MlirBlock b )

Returns true if block A dominates block B.

Definition at line 51 of file Dominance.cpp.

References b, and unwrap().

◆ mlirDominanceInfoDominatesOperation()

bool mlirDominanceInfoDominatesOperation ( MlirDominanceInfo info,
MlirOperation a,
MlirOperation b )

Returns true if operation A dominates operation B (A == B or A properly dominates B).

Definition at line 31 of file Dominance.cpp.

References b, and unwrap().

◆ mlirDominanceInfoFindNearestCommonDominator()

MlirBlock mlirDominanceInfoFindNearestCommonDominator ( MlirDominanceInfo info,
MlirBlock a,
MlirBlock b )

Finds the nearest common dominator of blocks A and B.

Returns a null block if none exists.

Definition at line 56 of file Dominance.cpp.

References b, unwrap(), and wrap().

◆ mlirDominanceInfoInvalidate()

void mlirDominanceInfoInvalidate ( MlirDominanceInfo info)

Invalidates all cached dominance information.

Definition at line 67 of file Dominance.cpp.

References unwrap().

◆ mlirDominanceInfoIsReachableFromEntry()

bool mlirDominanceInfoIsReachableFromEntry ( MlirDominanceInfo info,
MlirBlock block )

Returns true if the given block is reachable from the entry block of its region.

Definition at line 62 of file Dominance.cpp.

References unwrap().

◆ mlirDominanceInfoProperlyDominatesBlock()

bool mlirDominanceInfoProperlyDominatesBlock ( MlirDominanceInfo info,
MlirBlock a,
MlirBlock b )

Returns true if block A properly dominates block B.

Definition at line 46 of file Dominance.cpp.

References b, and unwrap().

◆ mlirDominanceInfoProperlyDominatesOperation()

bool mlirDominanceInfoProperlyDominatesOperation ( MlirDominanceInfo info,
MlirOperation a,
MlirOperation b )

Returns true if operation A properly dominates operation B.

Definition at line 25 of file Dominance.cpp.

References b, and unwrap().

◆ mlirDominanceInfoValueDominates()

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 B).

Definition at line 41 of file Dominance.cpp.

References b, and unwrap().

◆ mlirDominanceInfoValueProperlyDominates()

bool mlirDominanceInfoValueProperlyDominates ( MlirDominanceInfo info,
MlirValue a,
MlirOperation b )

Returns true if value A properly dominates operation B.

Definition at line 36 of file Dominance.cpp.

References b, and unwrap().

◆ mlirPostDominanceInfoCreate()

MlirPostDominanceInfo mlirPostDominanceInfoCreate ( MlirOperation op)

Creates a PostDominanceInfo for the given operation.

Definition at line 75 of file Dominance.cpp.

References unwrap(), and wrap().

◆ mlirPostDominanceInfoDestroy()

void mlirPostDominanceInfoDestroy ( MlirPostDominanceInfo info)

Destroys the given PostDominanceInfo.

Definition at line 79 of file Dominance.cpp.

References unwrap().

◆ mlirPostDominanceInfoInvalidate()

void mlirPostDominanceInfoInvalidate ( MlirPostDominanceInfo info)

Invalidates all cached post-dominance information.

Definition at line 104 of file Dominance.cpp.

References unwrap().

◆ mlirPostDominanceInfoPostDominatesBlock()

bool mlirPostDominanceInfoPostDominatesBlock ( MlirPostDominanceInfo info,
MlirBlock a,
MlirBlock b )

Returns true if block A post-dominates block B.

Definition at line 99 of file Dominance.cpp.

References b, and unwrap().

◆ mlirPostDominanceInfoPostDominatesOperation()

bool mlirPostDominanceInfoPostDominatesOperation ( MlirPostDominanceInfo info,
MlirOperation a,
MlirOperation b )

Returns true if operation A post-dominates operation B.

Definition at line 88 of file Dominance.cpp.

References b, and unwrap().

◆ mlirPostDominanceInfoProperlyPostDominatesBlock()

bool mlirPostDominanceInfoProperlyPostDominatesBlock ( MlirPostDominanceInfo info,
MlirBlock a,
MlirBlock b )

Returns true if block A properly post-dominates block B.

Definition at line 94 of file Dominance.cpp.

References b, and unwrap().

◆ mlirPostDominanceInfoProperlyPostDominatesOperation()

bool mlirPostDominanceInfoProperlyPostDominatesOperation ( MlirPostDominanceInfo info,
MlirOperation a,
MlirOperation b )

Returns true if operation A properly post-dominates operation B.

Definition at line 83 of file Dominance.cpp.

References b, and unwrap().