MLIR 23.0.0git
Transform.h File Reference
#include "mlir-c/IR.h"
#include "mlir-c/Interfaces.h"
#include "mlir-c/Rewrite.h"
#include "mlir-c/Support.h"
#include "mlir/Dialect/Transform/Transforms/Passes.capi.h.inc"

Go to the source code of this file.

Classes

struct  MlirTransformOpInterfaceCallbacks
 Callbacks for implementing TransformOpInterface from external code. More...

Macros

#define DEFINE_C_API_STRUCT(name, storage)

Typedefs

typedef void(* MlirOperationCallback) (MlirOperation, void *userData)
 Callback for iterating over payload operations.
typedef void(* MlirValueCallback) (MlirValue, void *userData)
 Callback for iterating over payload values.
typedef void(* MlirAttributeCallback) (MlirAttribute, void *userData)
 Callback for iterating over parameters.

Enumerations

enum  MlirDiagnosedSilenceableFailure { MlirDiagnosedSilenceableFailureSuccess , MlirDiagnosedSilenceableFailureSilenceableFailure , MlirDiagnosedSilenceableFailureDefiniteFailure }
 Enum representing the result of a transform operation. More...

Functions

 MLIR_DECLARE_CAPI_DIALECT_REGISTRATION (Transform, transform)
 DEFINE_C_API_STRUCT (MlirTransformResults, void)
 DEFINE_C_API_STRUCT (MlirTransformRewriter, void)
 DEFINE_C_API_STRUCT (MlirTransformState, void)
MLIR_CAPI_EXPORTED bool mlirTypeIsATransformAnyOpType (MlirType type)
MLIR_CAPI_EXPORTED MlirTypeID mlirTransformAnyOpTypeGetTypeID (void)
MLIR_CAPI_EXPORTED MlirType mlirTransformAnyOpTypeGet (MlirContext ctx)
MLIR_CAPI_EXPORTED MlirStringRef mlirTransformAnyOpTypeGetName (void)
MLIR_CAPI_EXPORTED bool mlirTypeIsATransformAnyParamType (MlirType type)
MLIR_CAPI_EXPORTED MlirTypeID mlirTransformAnyParamTypeGetTypeID (void)
MLIR_CAPI_EXPORTED MlirType mlirTransformAnyParamTypeGet (MlirContext ctx)
MLIR_CAPI_EXPORTED MlirStringRef mlirTransformAnyParamTypeGetName (void)
MLIR_CAPI_EXPORTED bool mlirTypeIsATransformAnyValueType (MlirType type)
MLIR_CAPI_EXPORTED MlirTypeID mlirTransformAnyValueTypeGetTypeID (void)
MLIR_CAPI_EXPORTED MlirType mlirTransformAnyValueTypeGet (MlirContext ctx)
MLIR_CAPI_EXPORTED MlirStringRef mlirTransformAnyValueTypeGetName (void)
MLIR_CAPI_EXPORTED bool mlirTypeIsATransformOperationType (MlirType type)
MLIR_CAPI_EXPORTED MlirTypeID mlirTransformOperationTypeGetTypeID (void)
MLIR_CAPI_EXPORTED MlirType mlirTransformOperationTypeGet (MlirContext ctx, MlirStringRef operationName)
MLIR_CAPI_EXPORTED MlirStringRef mlirTransformOperationTypeGetName (void)
MLIR_CAPI_EXPORTED MlirStringRef mlirTransformOperationTypeGetOperationName (MlirType type)
MLIR_CAPI_EXPORTED bool mlirTypeIsATransformParamType (MlirType type)
MLIR_CAPI_EXPORTED MlirTypeID mlirTransformParamTypeGetTypeID (void)
MLIR_CAPI_EXPORTED MlirType mlirTransformParamTypeGet (MlirContext ctx, MlirType type)
MLIR_CAPI_EXPORTED MlirStringRef mlirTransformParamTypeGetName (void)
MLIR_CAPI_EXPORTED MlirType mlirTransformParamTypeGetType (MlirType type)
MLIR_CAPI_EXPORTED MlirRewriterBase mlirTransformRewriterAsBase (MlirTransformRewriter rewriter)
 Cast the TransformRewriter to a RewriterBase.
MLIR_CAPI_EXPORTED void mlirTransformResultsSetOps (MlirTransformResults results, MlirValue result, intptr_t numOps, MlirOperation *ops)
 Set the payload operations for a transform result by iterating over a list.
MLIR_CAPI_EXPORTED void mlirTransformResultsSetValues (MlirTransformResults results, MlirValue result, intptr_t numValues, MlirValue *values)
 Set the payload values for a transform result by iterating over a list.
MLIR_CAPI_EXPORTED void mlirTransformResultsSetParams (MlirTransformResults results, MlirValue result, intptr_t numParams, MlirAttribute *params)
 Set the parameters for a transform result by iterating over a list.
MLIR_CAPI_EXPORTED void mlirTransformStateForEachPayloadOp (MlirTransformState state, MlirValue value, MlirOperationCallback callback, void *userData)
 Iterate over payload operations associated with the transform IR value.
MLIR_CAPI_EXPORTED void mlirTransformStateForEachPayloadValue (MlirTransformState state, MlirValue value, MlirValueCallback callback, void *userData)
 Iterate over payload values associated with the transform IR value.
MLIR_CAPI_EXPORTED void mlirTransformStateForEachParam (MlirTransformState state, MlirValue value, MlirAttributeCallback callback, void *userData)
 Iterate over parameters associated with the transform IR value.
MLIR_CAPI_EXPORTED MlirTypeID mlirTransformOpInterfaceTypeID (void)
 Returns the interface TypeID of the TransformOpInterface.
MLIR_CAPI_EXPORTED void mlirTransformOpInterfaceAttachFallbackModel (MlirContext ctx, MlirStringRef opName, MlirTransformOpInterfaceCallbacks callbacks)
 Attach TransformOpInterface to the operation with the given name using the provided callbacks.
MLIR_CAPI_EXPORTED void mlirTransformOnlyReadsHandle (MlirOpOperand *operands, intptr_t numOperands, MlirMemoryEffectInstancesList effects)
 Helper to mark operands as only reading handles.
MLIR_CAPI_EXPORTED void mlirTransformConsumesHandle (MlirOpOperand *operands, intptr_t numOperands, MlirMemoryEffectInstancesList effects)
 Helper to mark operands as consuming handles.
MLIR_CAPI_EXPORTED void mlirTransformProducesHandle (MlirValue *results, intptr_t numResults, MlirMemoryEffectInstancesList effects)
 Helper to mark results as producing handles.
MLIR_CAPI_EXPORTED void mlirTransformModifiesPayload (MlirMemoryEffectInstancesList effects)
 Helper to mark potential modifications to the payload IR.
MLIR_CAPI_EXPORTED void mlirTransformOnlyReadsPayload (MlirMemoryEffectInstancesList effects)
 Helper to mark potential reads from the payload IR.

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 24 of file Transform.h.

Typedef Documentation

◆ MlirAttributeCallback

typedef void(* MlirAttributeCallback) (MlirAttribute, void *userData)

Callback for iterating over parameters.

Definition at line 170 of file Transform.h.

◆ MlirOperationCallback

typedef void(* MlirOperationCallback) (MlirOperation, void *userData)

Callback for iterating over payload operations.

Definition at line 150 of file Transform.h.

◆ MlirValueCallback

typedef void(* MlirValueCallback) (MlirValue, void *userData)

Callback for iterating over payload values.

Definition at line 160 of file Transform.h.

Enumeration Type Documentation

◆ MlirDiagnosedSilenceableFailure

Enum representing the result of a transform operation.

Enumerator
MlirDiagnosedSilenceableFailureSuccess 

The operation succeeded.

MlirDiagnosedSilenceableFailureSilenceableFailure 

The operation failed in a silenceable way.

MlirDiagnosedSilenceableFailureDefiniteFailure 

The operation failed definitively.

Definition at line 41 of file Transform.h.

Function Documentation

◆ DEFINE_C_API_STRUCT() [1/3]

DEFINE_C_API_STRUCT ( MlirTransformResults ,
void  )

◆ DEFINE_C_API_STRUCT() [2/3]

DEFINE_C_API_STRUCT ( MlirTransformRewriter ,
void  )

◆ DEFINE_C_API_STRUCT() [3/3]

DEFINE_C_API_STRUCT ( MlirTransformState ,
void  )

◆ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION()

MLIR_DECLARE_CAPI_DIALECT_REGISTRATION ( Transform ,
transform  )

◆ mlirTransformAnyOpTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirTransformAnyOpTypeGet ( MlirContext ctx)

◆ mlirTransformAnyOpTypeGetName()

MLIR_CAPI_EXPORTED MlirStringRef mlirTransformAnyOpTypeGetName ( void )

Definition at line 41 of file Transform.cpp.

References wrap().

◆ mlirTransformAnyOpTypeGetTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirTransformAnyOpTypeGetTypeID ( void )

Definition at line 33 of file Transform.cpp.

References wrap().

◆ mlirTransformAnyParamTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirTransformAnyParamTypeGet ( MlirContext ctx)

◆ mlirTransformAnyParamTypeGetName()

MLIR_CAPI_EXPORTED MlirStringRef mlirTransformAnyParamTypeGetName ( void )

Definition at line 61 of file Transform.cpp.

References wrap().

◆ mlirTransformAnyParamTypeGetTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirTransformAnyParamTypeGetTypeID ( void )

Definition at line 53 of file Transform.cpp.

References wrap().

◆ mlirTransformAnyValueTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirTransformAnyValueTypeGet ( MlirContext ctx)

◆ mlirTransformAnyValueTypeGetName()

MLIR_CAPI_EXPORTED MlirStringRef mlirTransformAnyValueTypeGetName ( void )

Definition at line 81 of file Transform.cpp.

References wrap().

◆ mlirTransformAnyValueTypeGetTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirTransformAnyValueTypeGetTypeID ( void )

Definition at line 73 of file Transform.cpp.

References wrap().

◆ mlirTransformConsumesHandle()

MLIR_CAPI_EXPORTED void mlirTransformConsumesHandle ( MlirOpOperand * operands,
intptr_t numOperands,
MlirMemoryEffectInstancesList effects )

Helper to mark operands as consuming handles.

Helper to mark operands as consuming handles.

Definition at line 313 of file Transform.cpp.

References mlir::transform::consumesHandle(), and unwrap().

◆ mlirTransformModifiesPayload()

MLIR_CAPI_EXPORTED void mlirTransformModifiesPayload ( MlirMemoryEffectInstancesList effects)

Helper to mark potential modifications to the payload IR.

Helper to mark potential modifications to the payload IR.

Definition at line 333 of file Transform.cpp.

References mlir::transform::modifiesPayload(), and unwrap().

◆ mlirTransformOnlyReadsHandle()

MLIR_CAPI_EXPORTED void mlirTransformOnlyReadsHandle ( MlirOpOperand * operands,
intptr_t numOperands,
MlirMemoryEffectInstancesList effects )

Helper to mark operands as only reading handles.

Helper to mark operands as only reading handles.

Definition at line 306 of file Transform.cpp.

References mlir::transform::onlyReadsHandle(), and unwrap().

◆ mlirTransformOnlyReadsPayload()

MLIR_CAPI_EXPORTED void mlirTransformOnlyReadsPayload ( MlirMemoryEffectInstancesList effects)

Helper to mark potential reads from the payload IR.

Helper to mark potential reads from the payload IR.

Definition at line 338 of file Transform.cpp.

References mlir::transform::onlyReadsPayload(), and unwrap().

◆ mlirTransformOperationTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirTransformOperationTypeGet ( MlirContext ctx,
MlirStringRef operationName )

◆ mlirTransformOperationTypeGetName()

MLIR_CAPI_EXPORTED MlirStringRef mlirTransformOperationTypeGetName ( void )

Definition at line 103 of file Transform.cpp.

References wrap().

◆ mlirTransformOperationTypeGetOperationName()

MLIR_CAPI_EXPORTED MlirStringRef mlirTransformOperationTypeGetOperationName ( MlirType type)

◆ mlirTransformOperationTypeGetTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirTransformOperationTypeGetTypeID ( void )

Definition at line 93 of file Transform.cpp.

References wrap().

◆ mlirTransformOpInterfaceAttachFallbackModel()

MLIR_CAPI_EXPORTED void mlirTransformOpInterfaceAttachFallbackModel ( MlirContext ctx,
MlirStringRef opName,
MlirTransformOpInterfaceCallbacks callbacks )

Attach TransformOpInterface to the operation with the given name using the provided callbacks.

Attach TransformOpInterface to the operation with the given name using the provided callbacks.

The FallbackModel uses the provided callbacks to implement the interface.

Definition at line 281 of file Transform.cpp.

References mlir::RegisteredOperationName::lookup(), TransformOpInterfaceFallbackModel::setCallbacks(), and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::transform::PyTransformOpInterface::attach().

◆ mlirTransformOpInterfaceTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirTransformOpInterfaceTypeID ( void )

Returns the interface TypeID of the TransformOpInterface.

Definition at line 210 of file Transform.cpp.

References wrap().

◆ mlirTransformParamTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirTransformParamTypeGet ( MlirContext ctx,
MlirType type )

◆ mlirTransformParamTypeGetName()

MLIR_CAPI_EXPORTED MlirStringRef mlirTransformParamTypeGetName ( void )

Definition at line 127 of file Transform.cpp.

References wrap().

◆ mlirTransformParamTypeGetType()

MLIR_CAPI_EXPORTED MlirType mlirTransformParamTypeGetType ( MlirType type)

◆ mlirTransformParamTypeGetTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirTransformParamTypeGetTypeID ( void )

Definition at line 119 of file Transform.cpp.

References wrap().

◆ mlirTransformProducesHandle()

MLIR_CAPI_EXPORTED void mlirTransformProducesHandle ( MlirValue * results,
intptr_t numResults,
MlirMemoryEffectInstancesList effects )

Helper to mark results as producing handles.

Helper to mark results as producing handles.

Definition at line 320 of file Transform.cpp.

References mlir::transform::producesHandle(), and unwrap().

◆ mlirTransformResultsSetOps()

MLIR_CAPI_EXPORTED void mlirTransformResultsSetOps ( MlirTransformResults results,
MlirValue result,
intptr_t numOps,
MlirOperation * ops )

Set the payload operations for a transform result by iterating over a list.

Definition at line 150 of file Transform.cpp.

References result, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::transform::PyTransformResults::setOps().

◆ mlirTransformResultsSetParams()

MLIR_CAPI_EXPORTED void mlirTransformResultsSetParams ( MlirTransformResults results,
MlirValue result,
intptr_t numParams,
MlirAttribute * params )

Set the parameters for a transform result by iterating over a list.

Definition at line 169 of file Transform.cpp.

References result, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::transform::PyTransformResults::setParams().

◆ mlirTransformResultsSetValues()

MLIR_CAPI_EXPORTED void mlirTransformResultsSetValues ( MlirTransformResults results,
MlirValue result,
intptr_t numValues,
MlirValue * values )

Set the payload values for a transform result by iterating over a list.

Definition at line 159 of file Transform.cpp.

References result, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::transform::PyTransformResults::setValues().

◆ mlirTransformRewriterAsBase()

MLIR_CAPI_EXPORTED MlirRewriterBase mlirTransformRewriterAsBase ( MlirTransformRewriter rewriter)

Cast the TransformRewriter to a RewriterBase.

Cast the TransformRewriter to a RewriterBase.

Definition at line 140 of file Transform.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::transform::PyTransformRewriter::PyTransformRewriter().

◆ mlirTransformStateForEachParam()

MLIR_CAPI_EXPORTED void mlirTransformStateForEachParam ( MlirTransformState state,
MlirValue value,
MlirAttributeCallback callback,
void * userData )

Iterate over parameters associated with the transform IR value.

Calls the callback for each parameter.

Definition at line 199 of file Transform.cpp.

References unwrap(), and wrap().

◆ mlirTransformStateForEachPayloadOp()

MLIR_CAPI_EXPORTED void mlirTransformStateForEachPayloadOp ( MlirTransformState state,
MlirValue value,
MlirOperationCallback callback,
void * userData )

Iterate over payload operations associated with the transform IR value.

Calls the callback for each payload operation.

Definition at line 183 of file Transform.cpp.

References unwrap(), and wrap().

◆ mlirTransformStateForEachPayloadValue()

MLIR_CAPI_EXPORTED void mlirTransformStateForEachPayloadValue ( MlirTransformState state,
MlirValue value,
MlirValueCallback callback,
void * userData )

Iterate over payload values associated with the transform IR value.

Calls the callback for each payload value.

Definition at line 191 of file Transform.cpp.

References unwrap(), and wrap().

◆ mlirTypeIsATransformAnyOpType()

MLIR_CAPI_EXPORTED bool mlirTypeIsATransformAnyOpType ( MlirType type)

References MLIR_CAPI_EXPORTED, and result.

◆ mlirTypeIsATransformAnyParamType()

MLIR_CAPI_EXPORTED bool mlirTypeIsATransformAnyParamType ( MlirType type)

Definition at line 49 of file Transform.cpp.

References unwrap().

◆ mlirTypeIsATransformAnyValueType()

MLIR_CAPI_EXPORTED bool mlirTypeIsATransformAnyValueType ( MlirType type)

Definition at line 69 of file Transform.cpp.

References unwrap().

◆ mlirTypeIsATransformOperationType()

MLIR_CAPI_EXPORTED bool mlirTypeIsATransformOperationType ( MlirType type)

Definition at line 89 of file Transform.cpp.

References unwrap().

◆ mlirTypeIsATransformParamType()

MLIR_CAPI_EXPORTED bool mlirTypeIsATransformParamType ( MlirType type)

Definition at line 115 of file Transform.cpp.

References unwrap().