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

Go to the source code of this file.

Macros

#define DEFINE_C_API_STRUCT(name, storage)

Functions

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

Macro Definition Documentation

◆ DEFINE_C_API_STRUCT

#define DEFINE_C_API_STRUCT ( name,
storage )
Value:
struct name { \
storage *ptr; \
}; \
typedef struct name name

Definition at line 19 of file Dominance.h.

Function Documentation

◆ DEFINE_C_API_STRUCT() [1/2]

DEFINE_C_API_STRUCT ( MlirDominanceInfo ,
void  )

◆ DEFINE_C_API_STRUCT() [2/2]

DEFINE_C_API_STRUCT ( MlirPostDominanceInfo ,
void  )

References b, and MLIR_CAPI_EXPORTED.

◆ mlirDominanceInfoCreate()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED void mlirDominanceInfoDestroy ( MlirDominanceInfo info)

Destroys the given DominanceInfo.

Definition at line 23 of file Dominance.cpp.

References unwrap().

◆ mlirDominanceInfoDominatesBlock()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED void mlirDominanceInfoInvalidate ( MlirDominanceInfo info)

Invalidates all cached dominance information.

Definition at line 67 of file Dominance.cpp.

References unwrap().

◆ mlirDominanceInfoIsReachableFromEntry()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED MlirPostDominanceInfo mlirPostDominanceInfoCreate ( MlirOperation op)

Creates a PostDominanceInfo for the given operation.

Definition at line 75 of file Dominance.cpp.

References unwrap(), and wrap().

◆ mlirPostDominanceInfoDestroy()

MLIR_CAPI_EXPORTED void mlirPostDominanceInfoDestroy ( MlirPostDominanceInfo info)

Destroys the given PostDominanceInfo.

Definition at line 79 of file Dominance.cpp.

References unwrap().

◆ mlirPostDominanceInfoInvalidate()

MLIR_CAPI_EXPORTED void mlirPostDominanceInfoInvalidate ( MlirPostDominanceInfo info)

Invalidates all cached post-dominance information.

Definition at line 104 of file Dominance.cpp.

References unwrap().

◆ mlirPostDominanceInfoPostDominatesBlock()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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()

MLIR_CAPI_EXPORTED 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().