MLIR 23.0.0git
Rewrite.cpp File Reference

Go to the source code of this file.

Classes

class  mlir::ExternalConversionPattern
class  mlir::ExternalRewritePattern

Namespaces

namespace  mlir
 Include the generated interface declarations.

Functions

MlirContext mlirRewriterBaseGetContext (MlirRewriterBase rewriter)
 RewriterBase API inherited from OpBuilder.
void mlirRewriterBaseClearInsertionPoint (MlirRewriterBase rewriter)
 Insertion points methods.
void mlirRewriterBaseSetInsertionPointBefore (MlirRewriterBase rewriter, MlirOperation op)
 Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it.
void mlirRewriterBaseSetInsertionPointAfter (MlirRewriterBase rewriter, MlirOperation op)
 Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it.
void mlirRewriterBaseSetInsertionPointAfterValue (MlirRewriterBase rewriter, MlirValue value)
 Sets the insertion point to the node after the specified value.
void mlirRewriterBaseSetInsertionPointToStart (MlirRewriterBase rewriter, MlirBlock block)
 Sets the insertion point to the start of the specified block.
void mlirRewriterBaseSetInsertionPointToEnd (MlirRewriterBase rewriter, MlirBlock block)
 Sets the insertion point to the end of the specified block.
MlirBlock mlirRewriterBaseGetInsertionBlock (MlirRewriterBase rewriter)
 Return the block the current insertion point belongs to.
MlirBlock mlirRewriterBaseGetBlock (MlirRewriterBase rewriter)
 Returns the current block of the rewriter.
MlirOperation mlirRewriterBaseGetOperationAfterInsertion (MlirRewriterBase rewriter)
 Returns the operation right after the current insertion point of the rewriter.
MlirBlock mlirRewriterBaseCreateBlockBefore (MlirRewriterBase rewriter, MlirBlock insertBefore, intptr_t nArgTypes, MlirType const *argTypes, MlirLocation const *locations)
 Block and operation creation/insertion/cloning.
MlirOperation mlirRewriterBaseInsert (MlirRewriterBase rewriter, MlirOperation op)
 Insert the given operation at the current insertion point and return it.
MlirOperation mlirRewriterBaseClone (MlirRewriterBase rewriter, MlirOperation op)
 Creates a deep copy of the specified operation.
MlirOperation mlirRewriterBaseCloneWithoutRegions (MlirRewriterBase rewriter, MlirOperation op)
 Creates a deep copy of this operation but keep the operation regions empty.
MlirOperation mlirRewriterBaseCloneWithMapping (MlirRewriterBase rewriter, MlirOperation op, MlirIRMapping mapping)
 Clones the given operation using the rewriter and the provided IRMapping.
void mlirRewriterBaseCloneRegionBefore (MlirRewriterBase rewriter, MlirRegion region, MlirBlock before)
 Clone the blocks that belong to "region" before the given position in another region "parent".
void mlirRewriterBaseInlineRegionBefore (MlirRewriterBase rewriter, MlirRegion region, MlirBlock before)
 RewriterBase API.
void mlirRewriterBaseReplaceOpWithValues (MlirRewriterBase rewriter, MlirOperation op, intptr_t nValues, MlirValue const *values)
 Replace the results of the given (original) operation with the specified list of values (replacements).
void mlirRewriterBaseReplaceOpWithOperation (MlirRewriterBase rewriter, MlirOperation op, MlirOperation newOp)
 Replace the results of the given (original) operation with the specified new op (replacement).
void mlirRewriterBaseEraseOp (MlirRewriterBase rewriter, MlirOperation op)
 Erases an operation that is known to have no uses.
void mlirRewriterBaseEraseBlock (MlirRewriterBase rewriter, MlirBlock block)
 Erases a block along with all operations inside it.
void mlirRewriterBaseInlineBlockBefore (MlirRewriterBase rewriter, MlirBlock source, MlirOperation op, intptr_t nArgValues, MlirValue const *argValues)
 Inline the operations of block 'source' before the operation 'op'.
void mlirRewriterBaseMergeBlocks (MlirRewriterBase rewriter, MlirBlock source, MlirBlock dest, intptr_t nArgValues, MlirValue const *argValues)
 Inline the operations of block 'source' into the end of block 'dest'.
void mlirRewriterBaseMoveOpBefore (MlirRewriterBase rewriter, MlirOperation op, MlirOperation existingOp)
 Unlink this operation from its current block and insert it right before existingOp which may be in the same or another block in the same function.
void mlirRewriterBaseMoveOpAfter (MlirRewriterBase rewriter, MlirOperation op, MlirOperation existingOp)
 Unlink this operation from its current block and insert it right after existingOp which may be in the same or another block in the same function.
void mlirRewriterBaseMoveBlockBefore (MlirRewriterBase rewriter, MlirBlock block, MlirBlock existingBlock)
 Unlink this block and insert it right before existingBlock.
void mlirRewriterBaseStartOpModification (MlirRewriterBase rewriter, MlirOperation op)
 This method is used to notify the rewriter that an in-place operation modification is about to happen.
void mlirRewriterBaseFinalizeOpModification (MlirRewriterBase rewriter, MlirOperation op)
 This method is used to signal the end of an in-place modification of the given operation.
void mlirRewriterBaseCancelOpModification (MlirRewriterBase rewriter, MlirOperation op)
 This method cancels a pending in-place modification.
void mlirRewriterBaseReplaceAllUsesWith (MlirRewriterBase rewriter, MlirValue from, MlirValue to)
 Find uses of from and replace them with to.
void mlirRewriterBaseReplaceAllValueRangeUsesWith (MlirRewriterBase rewriter, intptr_t nValues, MlirValue const *from, MlirValue const *to)
 Find uses of from and replace them with to.
void mlirRewriterBaseReplaceAllOpUsesWithValueRange (MlirRewriterBase rewriter, MlirOperation from, intptr_t nTo, MlirValue const *to)
 Find uses of from and replace them with to.
void mlirRewriterBaseReplaceAllOpUsesWithOperation (MlirRewriterBase rewriter, MlirOperation from, MlirOperation to)
 Find uses of from and replace them with to.
void mlirRewriterBaseReplaceOpUsesWithinBlock (MlirRewriterBase rewriter, MlirOperation op, intptr_t nNewValues, MlirValue const *newValues, MlirBlock block)
 Find uses of from within block and replace them with to.
void mlirRewriterBaseReplaceAllUsesExcept (MlirRewriterBase rewriter, MlirValue from, MlirValue to, MlirOperation exceptedUser)
 Find uses of from and replace them with to except if the user is exceptedUser.
MlirRewriterBase mlirIRRewriterCreate (MlirContext context)
 IRRewriter API.
MlirRewriterBase mlirIRRewriterCreateFromOp (MlirOperation op)
 Create an IRRewriter and transfer ownership to the caller.
void mlirIRRewriterDestroy (MlirRewriterBase rewriter)
 Takes an IRRewriter owned by the caller and destroys it.
MlirFrozenRewritePatternSet mlirFreezeRewritePattern (MlirRewritePatternSet set)
 RewritePatternSet and FrozenRewritePatternSet API.
void mlirFrozenRewritePatternSetDestroy (MlirFrozenRewritePatternSet set)
 Destroy the given MlirFrozenRewritePatternSet.
mlir::GreedyRewriteConfigunwrap (MlirGreedyRewriteDriverConfig config)
 GreedyRewriteDriverConfig API.
MlirGreedyRewriteDriverConfig wrap (mlir::GreedyRewriteConfig *config)
MlirGreedyRewriteDriverConfig mlirGreedyRewriteDriverConfigCreate ()
 GreedyRewriteDriverConfig API.
void mlirGreedyRewriteDriverConfigDestroy (MlirGreedyRewriteDriverConfig config)
 Destroys a greedy rewrite driver configuration.
void mlirGreedyRewriteDriverConfigSetMaxIterations (MlirGreedyRewriteDriverConfig config, int64_t maxIterations)
 Sets the maximum number of iterations for the greedy rewrite driver.
void mlirGreedyRewriteDriverConfigSetMaxNumRewrites (MlirGreedyRewriteDriverConfig config, int64_t maxNumRewrites)
 Sets the maximum number of rewrites within an iteration.
void mlirGreedyRewriteDriverConfigSetUseTopDownTraversal (MlirGreedyRewriteDriverConfig config, bool useTopDownTraversal)
 Sets whether to use top-down traversal for the initial population of the worklist.
void mlirGreedyRewriteDriverConfigEnableFolding (MlirGreedyRewriteDriverConfig config, bool enable)
 Enables or disables folding during greedy rewriting.
void mlirGreedyRewriteDriverConfigSetStrictness (MlirGreedyRewriteDriverConfig config, MlirGreedyRewriteStrictness strictness)
 Sets the strictness level for the greedy rewrite driver.
void mlirGreedyRewriteDriverConfigSetRegionSimplificationLevel (MlirGreedyRewriteDriverConfig config, MlirGreedySimplifyRegionLevel level)
 Sets the region simplification level.
void mlirGreedyRewriteDriverConfigEnableConstantCSE (MlirGreedyRewriteDriverConfig config, bool enable)
 Enables or disables constant CSE.
int64_t mlirGreedyRewriteDriverConfigGetMaxIterations (MlirGreedyRewriteDriverConfig config)
 Gets the maximum number of iterations for the greedy rewrite driver.
int64_t mlirGreedyRewriteDriverConfigGetMaxNumRewrites (MlirGreedyRewriteDriverConfig config)
 Gets the maximum number of rewrites within an iteration.
bool mlirGreedyRewriteDriverConfigGetUseTopDownTraversal (MlirGreedyRewriteDriverConfig config)
 Gets whether top-down traversal is used for initial worklist population.
bool mlirGreedyRewriteDriverConfigIsFoldingEnabled (MlirGreedyRewriteDriverConfig config)
 Gets whether folding is enabled during greedy rewriting.
MlirGreedyRewriteStrictness mlirGreedyRewriteDriverConfigGetStrictness (MlirGreedyRewriteDriverConfig config)
 Gets the strictness level for the greedy rewrite driver.
MlirGreedySimplifyRegionLevel mlirGreedyRewriteDriverConfigGetRegionSimplificationLevel (MlirGreedyRewriteDriverConfig config)
 Gets the region simplification level.
bool mlirGreedyRewriteDriverConfigIsConstantCSEEnabled (MlirGreedyRewriteDriverConfig config)
 Gets whether constant CSE is enabled.
MlirLogicalResult mlirApplyPatternsAndFoldGreedily (MlirModule op, MlirFrozenRewritePatternSet patterns, MlirGreedyRewriteDriverConfig config)
MlirLogicalResult mlirApplyPatternsAndFoldGreedilyWithOp (MlirOperation op, MlirFrozenRewritePatternSet patterns, MlirGreedyRewriteDriverConfig config)
void mlirWalkAndApplyPatterns (MlirOperation op, MlirFrozenRewritePatternSet patterns)
 Applies the given patterns to the given op by a fast walk-based pattern rewrite driver.
MlirLogicalResult mlirApplyPartialConversion (MlirOperation op, MlirConversionTarget target, MlirFrozenRewritePatternSet patterns, MlirConversionConfig config)
 Apply a partial conversion on the given operation.
MlirLogicalResult mlirApplyFullConversion (MlirOperation op, MlirConversionTarget target, MlirFrozenRewritePatternSet patterns, MlirConversionConfig config)
 Apply a full conversion on the given operation.
MlirConversionConfig mlirConversionConfigCreate (void)
 ConversionConfig API.
void mlirConversionConfigDestroy (MlirConversionConfig config)
 Destroy the given ConversionConfig.
void mlirConversionConfigSetFoldingMode (MlirConversionConfig config, MlirDialectConversionFoldingMode mode)
 Set the folding mode for the given ConversionConfig.
MlirDialectConversionFoldingMode mlirConversionConfigGetFoldingMode (MlirConversionConfig config)
 Get the folding mode for the given ConversionConfig.
void mlirConversionConfigEnableBuildMaterializations (MlirConversionConfig config, bool enable)
 Enable or disable building materializations during conversion.
bool mlirConversionConfigIsBuildMaterializationsEnabled (MlirConversionConfig config)
 Check if building materializations during conversion is enabled.
MlirRewriterBase mlirPatternRewriterAsBase (MlirPatternRewriter rewriter)
 PatternRewriter API.
MlirPatternRewriter mlirConversionPatternRewriterAsPatternRewriter (MlirConversionPatternRewriter rewriter)
 ConversionPatternRewriter API.
MlirLogicalResult mlirConversionPatternRewriterConvertRegionTypes (MlirConversionPatternRewriter rewriter, MlirRegion region, MlirTypeConverter typeConverter)
 Apply a signature conversion to each block in the given region.
MlirConversionTarget mlirConversionTargetCreate (MlirContext context)
 ConversionTarget API.
void mlirConversionTargetDestroy (MlirConversionTarget target)
 Destroy the given ConversionTarget.
void mlirConversionTargetAddLegalOp (MlirConversionTarget target, MlirStringRef opName)
 Register the given operations as legal.
void mlirConversionTargetAddIllegalOp (MlirConversionTarget target, MlirStringRef opName)
 Register the given operations as illegal.
void mlirConversionTargetAddLegalDialect (MlirConversionTarget target, MlirStringRef dialectName)
 Register the operations of the given dialect as legal.
void mlirConversionTargetAddIllegalDialect (MlirConversionTarget target, MlirStringRef dialectName)
 Register the operations of the given dialect as illegal.
void mlirConversionTargetAddDynamicallyLegalOp (MlirConversionTarget target, MlirStringRef opName, MlirConversionTargetDynamicLegalityCallback callback, void *userData)
 Register the given operation as dynamically legal, with a callback to determine per-instance legality.
void mlirConversionTargetAddDynamicallyLegalDialect (MlirConversionTarget target, MlirStringRef dialectName, MlirConversionTargetDynamicLegalityCallback callback, void *userData)
 Register the given dialect as dynamically legal, with a callback to determine per-instance legality for all operations in the dialect.
void mlirConversionTargetMarkOpRecursivelyLegal (MlirConversionTarget target, MlirStringRef opName, MlirConversionTargetDynamicLegalityCallback callback, void *userData)
 Mark the given operation as recursively legal.
void mlirConversionTargetMarkUnknownOpDynamicallyLegal (MlirConversionTarget target, MlirConversionTargetDynamicLegalityCallback callback, void *userData)
 Mark unknown operations as dynamically legal, with a callback.
MlirTypeConverter mlirTypeConverterCreate ()
 TypeConverter API.
void mlirTypeConverterDestroy (MlirTypeConverter typeConverter)
 Destroy the given TypeConverter.
void mlirTypeConverterAddConversion (MlirTypeConverter typeConverter, MlirTypeConverterConversionCallback convertType, void *userData)
 Add a type conversion function to the given TypeConverter.
MlirType mlirTypeConverterConvertType (MlirTypeConverter typeConverter, MlirType type)
 Convert the given type using the given TypeConverter.
MlirConversionPattern mlirOpConversionPatternCreate (MlirStringRef rootName, unsigned benefit, MlirContext context, MlirTypeConverter typeConverter, MlirConversionPatternCallbacks callbacks, void *userData, size_t nGeneratedNames, MlirStringRef *generatedNames)
 Create a conversion pattern that matches the operation with the given rootName, corresponding to mlir::OpConversionPattern.
MlirTypeConverter mlirConversionPatternGetTypeConverter (MlirConversionPattern pattern)
 Get the type converter used by this conversion pattern.
MlirRewritePattern mlirConversionPatternAsRewritePattern (MlirConversionPattern pattern)
 Cast the ConversionPattern to a RewritePattern.
MlirRewritePattern mlirOpRewritePatternCreate (MlirStringRef rootName, unsigned benefit, MlirContext context, MlirRewritePatternCallbacks callbacks, void *userData, size_t nGeneratedNames, MlirStringRef *generatedNames)
 Create a rewrite pattern that matches the operation with the given rootName, corresponding to mlir::OpRewritePattern.
MlirRewritePatternSet mlirRewritePatternSetCreate (MlirContext context)
 RewritePatternSet API.
MlirContext mlirRewritePatternSetGetContext (MlirRewritePatternSet set)
 Get the context associated with a MlirRewritePatternSet.
void mlirRewritePatternSetDestroy (MlirRewritePatternSet set)
 Destruct the given MlirRewritePatternSet.
void mlirRewritePatternSetAdd (MlirRewritePatternSet set, MlirRewritePattern pattern)
 Add the given MlirRewritePattern into a MlirRewritePatternSet.

Function Documentation

◆ mlirApplyFullConversion()

MlirLogicalResult mlirApplyFullConversion ( MlirOperation op,
MlirConversionTarget target,
MlirFrozenRewritePatternSet patterns,
MlirConversionConfig config )

Apply a full conversion on the given operation.

Definition at line 463 of file Rewrite.cpp.

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

◆ mlirApplyPartialConversion()

MlirLogicalResult mlirApplyPartialConversion ( MlirOperation op,
MlirConversionTarget target,
MlirFrozenRewritePatternSet patterns,
MlirConversionConfig config )

Apply a partial conversion on the given operation.

Definition at line 456 of file Rewrite.cpp.

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

◆ mlirApplyPatternsAndFoldGreedily()

MlirLogicalResult mlirApplyPatternsAndFoldGreedily ( MlirModule op,
MlirFrozenRewritePatternSet patterns,
MlirGreedyRewriteDriverConfig config )

Definition at line 435 of file Rewrite.cpp.

References mlir::applyPatternsGreedily(), unwrap(), and wrap().

◆ mlirApplyPatternsAndFoldGreedilyWithOp()

MlirLogicalResult mlirApplyPatternsAndFoldGreedilyWithOp ( MlirOperation op,
MlirFrozenRewritePatternSet patterns,
MlirGreedyRewriteDriverConfig config )

Definition at line 443 of file Rewrite.cpp.

References mlir::applyPatternsGreedily(), unwrap(), and wrap().

◆ mlirConversionConfigCreate()

MlirConversionConfig mlirConversionConfigCreate ( void )

ConversionConfig API.

Create a default ConversionConfig.

Definition at line 475 of file Rewrite.cpp.

References wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionConfig::isBuildMaterializationsEnabled().

◆ mlirConversionConfigDestroy()

void mlirConversionConfigDestroy ( MlirConversionConfig config)

Destroy the given ConversionConfig.

Definition at line 479 of file Rewrite.cpp.

References unwrap().

◆ mlirConversionConfigEnableBuildMaterializations()

void mlirConversionConfigEnableBuildMaterializations ( MlirConversionConfig config,
bool enable )

Enable or disable building materializations during conversion.

Definition at line 512 of file Rewrite.cpp.

References unwrap().

◆ mlirConversionConfigGetFoldingMode()

MlirDialectConversionFoldingMode mlirConversionConfigGetFoldingMode ( MlirConversionConfig config)

◆ mlirConversionConfigIsBuildMaterializationsEnabled()

bool mlirConversionConfigIsBuildMaterializationsEnabled ( MlirConversionConfig config)

Check if building materializations during conversion is enabled.

Definition at line 517 of file Rewrite.cpp.

References unwrap().

◆ mlirConversionConfigSetFoldingMode()

void mlirConversionConfigSetFoldingMode ( MlirConversionConfig config,
MlirDialectConversionFoldingMode mode )

◆ mlirConversionPatternAsRewritePattern()

MlirRewritePattern mlirConversionPatternAsRewritePattern ( MlirConversionPattern pattern)

Cast the ConversionPattern to a RewritePattern.

Definition at line 735 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::addConversion().

◆ mlirConversionPatternGetTypeConverter()

MlirTypeConverter mlirConversionPatternGetTypeConverter ( MlirConversionPattern pattern)

Get the type converter used by this conversion pattern.

Definition at line 730 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionPattern::getTypeConverter().

◆ mlirConversionPatternRewriterAsPatternRewriter()

MlirPatternRewriter mlirConversionPatternRewriterAsPatternRewriter ( MlirConversionPatternRewriter rewriter)

ConversionPatternRewriter API.

Cast the ConversionPatternRewriter to a PatternRewriter

Definition at line 534 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionPatternRewriter::PyConversionPatternRewriter().

◆ mlirConversionPatternRewriterConvertRegionTypes()

MlirLogicalResult mlirConversionPatternRewriterConvertRegionTypes ( MlirConversionPatternRewriter rewriter,
MlirRegion region,
MlirTypeConverter typeConverter )

Apply a signature conversion to each block in the given region.

Definition at line 539 of file Rewrite.cpp.

References unwrap(), and wrap().

◆ mlirConversionTargetAddDynamicallyLegalDialect()

void mlirConversionTargetAddDynamicallyLegalDialect ( MlirConversionTarget target,
MlirStringRef dialectName,
MlirConversionTargetDynamicLegalityCallback callback,
void * userData )

Register the given dialect as dynamically legal, with a callback to determine per-instance legality for all operations in the dialect.

The callback must not be NULL.

Definition at line 611 of file Rewrite.cpp.

References target, and unwrap().

◆ mlirConversionTargetAddDynamicallyLegalOp()

void mlirConversionTargetAddDynamicallyLegalOp ( MlirConversionTarget target,
MlirStringRef opName,
MlirConversionTargetDynamicLegalityCallback callback,
void * userData )

Register the given operation as dynamically legal, with a callback to determine per-instance legality.

The callback must not be NULL.

Definition at line 601 of file Rewrite.cpp.

References target, and unwrap().

◆ mlirConversionTargetAddIllegalDialect()

void mlirConversionTargetAddIllegalDialect ( MlirConversionTarget target,
MlirStringRef dialectName )

Register the operations of the given dialect as illegal.

Definition at line 575 of file Rewrite.cpp.

References target, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionTarget::addIllegalDialect().

◆ mlirConversionTargetAddIllegalOp()

void mlirConversionTargetAddIllegalOp ( MlirConversionTarget target,
MlirStringRef opName )

Register the given operations as illegal.

Definition at line 564 of file Rewrite.cpp.

References getContext(), target, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionTarget::addIllegalOp().

◆ mlirConversionTargetAddLegalDialect()

void mlirConversionTargetAddLegalDialect ( MlirConversionTarget target,
MlirStringRef dialectName )

Register the operations of the given dialect as legal.

Definition at line 570 of file Rewrite.cpp.

References target, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionTarget::addLegalDialect().

◆ mlirConversionTargetAddLegalOp()

void mlirConversionTargetAddLegalOp ( MlirConversionTarget target,
MlirStringRef opName )

Register the given operations as legal.

Definition at line 558 of file Rewrite.cpp.

References getContext(), target, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionTarget::addLegalOp().

◆ mlirConversionTargetCreate()

MlirConversionTarget mlirConversionTargetCreate ( MlirContext context)

◆ mlirConversionTargetDestroy()

void mlirConversionTargetDestroy ( MlirConversionTarget target)

Destroy the given ConversionTarget.

Definition at line 554 of file Rewrite.cpp.

References target, and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionTarget::~PyConversionTarget().

◆ mlirConversionTargetMarkOpRecursivelyLegal()

void mlirConversionTargetMarkOpRecursivelyLegal ( MlirConversionTarget target,
MlirStringRef opName,
MlirConversionTargetDynamicLegalityCallback callback,
void * userData )

Mark the given operation as recursively legal.

The optional callback (may be NULL) determines whether a specific instance is recursively legal; a NULL callback marks the operation as unconditionally recursively legal.

Definition at line 619 of file Rewrite.cpp.

References target, and unwrap().

◆ mlirConversionTargetMarkUnknownOpDynamicallyLegal()

void mlirConversionTargetMarkUnknownOpDynamicallyLegal ( MlirConversionTarget target,
MlirConversionTargetDynamicLegalityCallback callback,
void * userData )

Mark unknown operations as dynamically legal, with a callback.

The callback must not be NULL.

Definition at line 630 of file Rewrite.cpp.

References target, and unwrap().

◆ mlirFreezeRewritePattern()

MlirFrozenRewritePatternSet mlirFreezeRewritePattern ( MlirRewritePatternSet set)

RewritePatternSet and FrozenRewritePatternSet API.

FrozenRewritePatternSet API.

Definition at line 286 of file Rewrite.cpp.

References unwrap(), and wrap().

◆ mlirFrozenRewritePatternSetDestroy()

void mlirFrozenRewritePatternSetDestroy ( MlirFrozenRewritePatternSet set)

Destroy the given MlirFrozenRewritePatternSet.

Definition at line 292 of file Rewrite.cpp.

References unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyFrozenRewritePatternSet::~PyFrozenRewritePatternSet().

◆ mlirGreedyRewriteDriverConfigCreate()

MlirGreedyRewriteDriverConfig mlirGreedyRewriteDriverConfigCreate ( void )

GreedyRewriteDriverConfig API.

Creates a greedy rewrite driver configuration with default settings.

Definition at line 310 of file Rewrite.cpp.

References wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyGreedyRewriteConfig::setUseTopDownTraversal().

◆ mlirGreedyRewriteDriverConfigDestroy()

void mlirGreedyRewriteDriverConfigDestroy ( MlirGreedyRewriteDriverConfig config)

Destroys a greedy rewrite driver configuration.

Definition at line 314 of file Rewrite.cpp.

References unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyConversionConfig::setFoldingMode().

◆ mlirGreedyRewriteDriverConfigEnableConstantCSE()

void mlirGreedyRewriteDriverConfigEnableConstantCSE ( MlirGreedyRewriteDriverConfig config,
bool enable )

Enables or disables constant CSE.

Definition at line 374 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::enableConstantCSE(), and unwrap().

◆ mlirGreedyRewriteDriverConfigEnableFolding()

void mlirGreedyRewriteDriverConfigEnableFolding ( MlirGreedyRewriteDriverConfig config,
bool enable )

Enables or disables folding during greedy rewriting.

Definition at line 334 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::enableFolding(), and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyGreedyRewriteConfig::getMaxNumRewrites().

◆ mlirGreedyRewriteDriverConfigGetMaxIterations()

int64_t mlirGreedyRewriteDriverConfigGetMaxIterations ( MlirGreedyRewriteDriverConfig config)

Gets the maximum number of iterations for the greedy rewrite driver.

Definition at line 379 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::getMaxIterations(), and unwrap().

◆ mlirGreedyRewriteDriverConfigGetMaxNumRewrites()

int64_t mlirGreedyRewriteDriverConfigGetMaxNumRewrites ( MlirGreedyRewriteDriverConfig config)

Gets the maximum number of rewrites within an iteration.

Definition at line 384 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::getMaxNumRewrites(), and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyGreedyRewriteConfig::isConstantCSEEnabled().

◆ mlirGreedyRewriteDriverConfigGetRegionSimplificationLevel()

MlirGreedySimplifyRegionLevel mlirGreedyRewriteDriverConfigGetRegionSimplificationLevel ( MlirGreedyRewriteDriverConfig config)

◆ mlirGreedyRewriteDriverConfigGetStrictness()

MlirGreedyRewriteStrictness mlirGreedyRewriteDriverConfigGetStrictness ( MlirGreedyRewriteDriverConfig config)

◆ mlirGreedyRewriteDriverConfigGetUseTopDownTraversal()

bool mlirGreedyRewriteDriverConfigGetUseTopDownTraversal ( MlirGreedyRewriteDriverConfig config)

Gets whether top-down traversal is used for initial worklist population.

Definition at line 389 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::getUseTopDownTraversal(), and unwrap().

◆ mlirGreedyRewriteDriverConfigIsConstantCSEEnabled()

bool mlirGreedyRewriteDriverConfigIsConstantCSEEnabled ( MlirGreedyRewriteDriverConfig config)

Gets whether constant CSE is enabled.

Definition at line 429 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::isConstantCSEEnabled(), and unwrap().

◆ mlirGreedyRewriteDriverConfigIsFoldingEnabled()

bool mlirGreedyRewriteDriverConfigIsFoldingEnabled ( MlirGreedyRewriteDriverConfig config)

Gets whether folding is enabled during greedy rewriting.

Definition at line 394 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::isFoldingEnabled(), and unwrap().

◆ mlirGreedyRewriteDriverConfigSetMaxIterations()

void mlirGreedyRewriteDriverConfigSetMaxIterations ( MlirGreedyRewriteDriverConfig config,
int64_t maxIterations )

Sets the maximum number of iterations for the greedy rewrite driver.

Use -1 for no limit.

Definition at line 319 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::setMaxIterations(), and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyGreedyRewriteConfig::setRegionSimplificationLevel().

◆ mlirGreedyRewriteDriverConfigSetMaxNumRewrites()

void mlirGreedyRewriteDriverConfigSetMaxNumRewrites ( MlirGreedyRewriteDriverConfig config,
int64_t maxNumRewrites )

Sets the maximum number of rewrites within an iteration.

Use -1 for no limit.

Definition at line 324 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::setMaxNumRewrites(), and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyGreedyRewriteConfig::enableConstantCSE().

◆ mlirGreedyRewriteDriverConfigSetRegionSimplificationLevel()

void mlirGreedyRewriteDriverConfigSetRegionSimplificationLevel ( MlirGreedyRewriteDriverConfig config,
MlirGreedySimplifyRegionLevel level )

◆ mlirGreedyRewriteDriverConfigSetStrictness()

◆ mlirGreedyRewriteDriverConfigSetUseTopDownTraversal()

void mlirGreedyRewriteDriverConfigSetUseTopDownTraversal ( MlirGreedyRewriteDriverConfig config,
bool useTopDownTraversal )

Sets whether to use top-down traversal for the initial population of the worklist.

Definition at line 329 of file Rewrite.cpp.

References mlir::GreedyRewriteConfig::setUseTopDownTraversal(), and unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyGreedyRewriteConfig::getMaxIterations().

◆ mlirIRRewriterCreate()

MlirRewriterBase mlirIRRewriterCreate ( MlirContext context)

IRRewriter API.

Create an IRRewriter and transfer ownership to the caller.

Definition at line 269 of file Rewrite.cpp.

References unwrap(), and wrap().

◆ mlirIRRewriterCreateFromOp()

MlirRewriterBase mlirIRRewriterCreateFromOp ( MlirOperation op)

Create an IRRewriter and transfer ownership to the caller.

Additionally set the insertion point before the operation.

Definition at line 273 of file Rewrite.cpp.

References unwrap(), and wrap().

◆ mlirIRRewriterDestroy()

void mlirIRRewriterDestroy ( MlirRewriterBase rewriter)

Takes an IRRewriter owned by the caller and destroys it.

It is the responsibility of the user to only pass an IRRewriter class.

Definition at line 277 of file Rewrite.cpp.

References unwrap().

◆ mlirOpConversionPatternCreate()

MlirConversionPattern mlirOpConversionPatternCreate ( MlirStringRef rootName,
unsigned benefit,
MlirContext context,
MlirTypeConverter typeConverter,
MlirConversionPatternCallbacks callbacks,
void * userData,
size_t nGeneratedNames,
MlirStringRef * generatedNames )

Create a conversion pattern that matches the operation with the given rootName, corresponding to mlir::OpConversionPattern.

Definition at line 716 of file Rewrite.cpp.

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

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::addConversion().

◆ mlirOpRewritePatternCreate()

MlirRewritePattern mlirOpRewritePatternCreate ( MlirStringRef rootName,
unsigned benefit,
MlirContext context,
MlirRewritePatternCallbacks callbacks,
void * userData,
size_t nGeneratedNames,
MlirStringRef * generatedNames )

Create a rewrite pattern that matches the operation with the given rootName, corresponding to mlir::OpRewritePattern.

Definition at line 776 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::add().

◆ mlirPatternRewriterAsBase()

MlirRewriterBase mlirPatternRewriterAsBase ( MlirPatternRewriter rewriter)

PatternRewriter API.

Cast the PatternRewriter to a RewriterBase

Definition at line 526 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyPatternRewriter::PyPatternRewriter().

◆ mlirRewritePatternSetAdd()

void mlirRewritePatternSetAdd ( MlirRewritePatternSet set,
MlirRewritePattern pattern )

Add the given MlirRewritePattern into a MlirRewritePatternSet.

Note that the ownership of the pattern is transferred to the set after this call.

Definition at line 806 of file Rewrite.cpp.

References unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::add(), and mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::addConversion().

◆ mlirRewritePatternSetCreate()

MlirRewritePatternSet mlirRewritePatternSetCreate ( MlirContext context)

RewritePatternSet API.

Create an empty MlirRewritePatternSet.

Definition at line 794 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::PyRewritePatternSet().

◆ mlirRewritePatternSetDestroy()

void mlirRewritePatternSetDestroy ( MlirRewritePatternSet set)

Destruct the given MlirRewritePatternSet.

Definition at line 802 of file Rewrite.cpp.

References unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::~PyRewritePatternSet().

◆ mlirRewritePatternSetGetContext()

MlirContext mlirRewritePatternSetGetContext ( MlirRewritePatternSet set)

Get the context associated with a MlirRewritePatternSet.

Definition at line 798 of file Rewrite.cpp.

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

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::add(), and mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewritePatternSet::addConversion().

◆ mlirRewriterBaseCancelOpModification()

void mlirRewriterBaseCancelOpModification ( MlirRewriterBase rewriter,
MlirOperation op )

This method cancels a pending in-place modification.

This can only be called on operations that were provided to a call to startOpModification.

Definition at line 211 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseClearInsertionPoint()

void mlirRewriterBaseClearInsertionPoint ( MlirRewriterBase rewriter)

Insertion points methods.

Reset the insertion point to no location. Creating an operation without a set insertion point is an error, but this can still be useful when the current insertion point a builder refers to is being removed.

Definition at line 42 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseClone()

MlirOperation mlirRewriterBaseClone ( MlirRewriterBase rewriter,
MlirOperation op )

Creates a deep copy of the specified operation.

Definition at line 114 of file Rewrite.cpp.

References mlir::clone(), unwrap(), and wrap().

◆ mlirRewriterBaseCloneRegionBefore()

void mlirRewriterBaseCloneRegionBefore ( MlirRewriterBase rewriter,
MlirRegion region,
MlirBlock before )

Clone the blocks that belong to "region" before the given position in another region "parent".

Definition at line 130 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseCloneWithMapping()

MlirOperation mlirRewriterBaseCloneWithMapping ( MlirRewriterBase rewriter,
MlirOperation op,
MlirIRMapping mapping )

Clones the given operation using the rewriter and the provided IRMapping.

The mapping is updated with the results of the cloned operation.

Definition at line 124 of file Rewrite.cpp.

References mlir::clone(), unwrap(), and wrap().

◆ mlirRewriterBaseCloneWithoutRegions()

MlirOperation mlirRewriterBaseCloneWithoutRegions ( MlirRewriterBase rewriter,
MlirOperation op )

Creates a deep copy of this operation but keep the operation regions empty.

Definition at line 119 of file Rewrite.cpp.

References mlir::cloneWithoutRegions(), unwrap(), and wrap().

◆ mlirRewriterBaseCreateBlockBefore()

MlirBlock mlirRewriterBaseCreateBlockBefore ( MlirRewriterBase rewriter,
MlirBlock insertBefore,
intptr_t nArgTypes,
MlirType const * argTypes,
MlirLocation const * locations )

Block and operation creation/insertion/cloning.

Add new block with 'argTypes' arguments and set the insertion point to the end of it. The block is placed before 'insertBefore'. locs contains the locations of the inserted arguments, and should match the size of argTypes.

Definition at line 94 of file Rewrite.cpp.

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

◆ mlirRewriterBaseEraseBlock()

void mlirRewriterBaseEraseBlock ( MlirRewriterBase rewriter,
MlirBlock block )

Erases a block along with all operations inside it.

Definition at line 163 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseEraseOp()

void mlirRewriterBaseEraseOp ( MlirRewriterBase rewriter,
MlirOperation op )

Erases an operation that is known to have no uses.

Definition at line 159 of file Rewrite.cpp.

References unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewriterBase< DerivedTy >::bind().

◆ mlirRewriterBaseFinalizeOpModification()

void mlirRewriterBaseFinalizeOpModification ( MlirRewriterBase rewriter,
MlirOperation op )

This method is used to signal the end of an in-place modification of the given operation.

This can only be called on operations that were provided to a call to startOpModification.

Definition at line 206 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseGetBlock()

MlirBlock mlirRewriterBaseGetBlock ( MlirRewriterBase rewriter)

Returns the current block of the rewriter.

Definition at line 75 of file Rewrite.cpp.

References unwrap(), and wrap().

◆ mlirRewriterBaseGetContext()

MlirContext mlirRewriterBaseGetContext ( MlirRewriterBase rewriter)

RewriterBase API inherited from OpBuilder.

Get the MLIR context referenced by the rewriter.

Definition at line 34 of file Rewrite.cpp.

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

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewriterBase< DerivedTy >::PyRewriterBase().

◆ mlirRewriterBaseGetInsertionBlock()

MlirBlock mlirRewriterBaseGetInsertionBlock ( MlirRewriterBase rewriter)

Return the block the current insertion point belongs to.

Note that the insertion point is not necessarily the end of the block.

Definition at line 71 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewriterBase< DerivedTy >::getInsertionPoint().

◆ mlirRewriterBaseGetOperationAfterInsertion()

MlirOperation mlirRewriterBaseGetOperationAfterInsertion ( MlirRewriterBase rewriter)

Returns the operation right after the current insertion point of the rewriter.

A null MlirOperation will be returned

Definition at line 80 of file Rewrite.cpp.

References mlir::Block::end(), mlir::OpBuilder::getInsertionBlock(), mlir::OpBuilder::getInsertionPoint(), unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewriterBase< DerivedTy >::getInsertionPoint().

◆ mlirRewriterBaseInlineBlockBefore()

void mlirRewriterBaseInlineBlockBefore ( MlirRewriterBase rewriter,
MlirBlock source,
MlirOperation op,
intptr_t nArgValues,
MlirValue const * argValues )

Inline the operations of block 'source' before the operation 'op'.

The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The source block must have no successors. Otherwise, the resulting IR would have unreachable operations.

Definition at line 167 of file Rewrite.cpp.

References unwrap(), and unwrapList().

◆ mlirRewriterBaseInlineRegionBefore()

void mlirRewriterBaseInlineRegionBefore ( MlirRewriterBase rewriter,
MlirRegion region,
MlirBlock before )

RewriterBase API.

Move the blocks that belong to "region" before the given position in another region "parent". The two regions must be different. The caller is responsible for creating or updating the operation transferring flow of control to the region and passing it the correct block arguments.

Definition at line 140 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseInsert()

MlirOperation mlirRewriterBaseInsert ( MlirRewriterBase rewriter,
MlirOperation op )

Insert the given operation at the current insertion point and return it.

Definition at line 107 of file Rewrite.cpp.

References unwrap(), and wrap().

◆ mlirRewriterBaseMergeBlocks()

void mlirRewriterBaseMergeBlocks ( MlirRewriterBase rewriter,
MlirBlock source,
MlirBlock dest,
intptr_t nArgValues,
MlirValue const * argValues )

Inline the operations of block 'source' into the end of block 'dest'.

The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The dest block must have no successors. Otherwise, the resulting IR would have unreachable operation.

Definition at line 178 of file Rewrite.cpp.

References unwrap(), and unwrapList().

◆ mlirRewriterBaseMoveBlockBefore()

void mlirRewriterBaseMoveBlockBefore ( MlirRewriterBase rewriter,
MlirBlock block,
MlirBlock existingBlock )

Unlink this block and insert it right before existingBlock.

Definition at line 196 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseMoveOpAfter()

void mlirRewriterBaseMoveOpAfter ( MlirRewriterBase rewriter,
MlirOperation op,
MlirOperation existingOp )

Unlink this operation from its current block and insert it right after existingOp which may be in the same or another block in the same function.

Definition at line 191 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseMoveOpBefore()

void mlirRewriterBaseMoveOpBefore ( MlirRewriterBase rewriter,
MlirOperation op,
MlirOperation existingOp )

Unlink this operation from its current block and insert it right before existingOp which may be in the same or another block in the same function.

Definition at line 186 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseReplaceAllOpUsesWithOperation()

void mlirRewriterBaseReplaceAllOpUsesWithOperation ( MlirRewriterBase rewriter,
MlirOperation from,
MlirOperation to )

Find uses of from and replace them with to.

Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

Definition at line 241 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseReplaceAllOpUsesWithValueRange()

void mlirRewriterBaseReplaceAllOpUsesWithValueRange ( MlirRewriterBase rewriter,
MlirOperation from,
intptr_t nTo,
MlirValue const * to )

Find uses of from and replace them with to.

Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

Definition at line 232 of file Rewrite.cpp.

References unwrap(), and unwrapList().

◆ mlirRewriterBaseReplaceAllUsesExcept()

void mlirRewriterBaseReplaceAllUsesExcept ( MlirRewriterBase rewriter,
MlirValue from,
MlirValue to,
MlirOperation exceptedUser )

Find uses of from and replace them with to except if the user is exceptedUser.

Also notify the listener about every in-place op modification (for every use that was replaced).

Definition at line 258 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseReplaceAllUsesWith()

void mlirRewriterBaseReplaceAllUsesWith ( MlirRewriterBase rewriter,
MlirValue from,
MlirValue to )

Find uses of from and replace them with to.

Also notify the listener about every in-place op modification (for every use that was replaced).

Definition at line 216 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseReplaceAllValueRangeUsesWith()

void mlirRewriterBaseReplaceAllValueRangeUsesWith ( MlirRewriterBase rewriter,
intptr_t nValues,
MlirValue const * from,
MlirValue const * to )

Find uses of from and replace them with to.

Also notify the listener about every in-place op modification (for every use that was replaced).

Definition at line 221 of file Rewrite.cpp.

References unwrap(), and unwrapList().

◆ mlirRewriterBaseReplaceOpUsesWithinBlock()

void mlirRewriterBaseReplaceOpUsesWithinBlock ( MlirRewriterBase rewriter,
MlirOperation op,
intptr_t nNewValues,
MlirValue const * newValues,
MlirBlock block )

Find uses of from within block and replace them with to.

Also notify the listener about every in-place op modification (for every use that was replaced). The optional allUsesReplaced flag is set to "true" if all uses were replaced.

Definition at line 247 of file Rewrite.cpp.

References unwrap(), and unwrapList().

◆ mlirRewriterBaseReplaceOpWithOperation()

void mlirRewriterBaseReplaceOpWithOperation ( MlirRewriterBase rewriter,
MlirOperation op,
MlirOperation newOp )

Replace the results of the given (original) operation with the specified new op (replacement).

The result types of the two ops must match. The original op is erased.

Definition at line 153 of file Rewrite.cpp.

References unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewriterBase< DerivedTy >::bind().

◆ mlirRewriterBaseReplaceOpWithValues()

void mlirRewriterBaseReplaceOpWithValues ( MlirRewriterBase rewriter,
MlirOperation op,
intptr_t nValues,
MlirValue const * values )

Replace the results of the given (original) operation with the specified list of values (replacements).

The result types of the given op and the replacements must match. The original op is erased.

Definition at line 145 of file Rewrite.cpp.

References unwrap(), and unwrapList().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyRewriterBase< DerivedTy >::bind().

◆ mlirRewriterBaseSetInsertionPointAfter()

void mlirRewriterBaseSetInsertionPointAfter ( MlirRewriterBase rewriter,
MlirOperation op )

Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it.

Definition at line 51 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseSetInsertionPointAfterValue()

void mlirRewriterBaseSetInsertionPointAfterValue ( MlirRewriterBase rewriter,
MlirValue value )

Sets the insertion point to the node after the specified value.

If value has a defining operation, sets the insertion point to the node after such defining operation. This will cause subsequent insertions to go right after it. Otherwise, value is a BlockArgument. Sets the insertion point to the start of its block.

Definition at line 56 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseSetInsertionPointBefore()

void mlirRewriterBaseSetInsertionPointBefore ( MlirRewriterBase rewriter,
MlirOperation op )

Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it.

Definition at line 46 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseSetInsertionPointToEnd()

void mlirRewriterBaseSetInsertionPointToEnd ( MlirRewriterBase rewriter,
MlirBlock block )

Sets the insertion point to the end of the specified block.

Definition at line 66 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseSetInsertionPointToStart()

void mlirRewriterBaseSetInsertionPointToStart ( MlirRewriterBase rewriter,
MlirBlock block )

Sets the insertion point to the start of the specified block.

Definition at line 61 of file Rewrite.cpp.

References unwrap().

◆ mlirRewriterBaseStartOpModification()

void mlirRewriterBaseStartOpModification ( MlirRewriterBase rewriter,
MlirOperation op )

This method is used to notify the rewriter that an in-place operation modification is about to happen.

A call to this function must be followed by a call to either finalizeOpModification or cancelOpModification. This is a minor efficiency win (it avoids creating a new operation and removing the old one) but also often allows simpler code in the client.

Definition at line 201 of file Rewrite.cpp.

References unwrap().

◆ mlirTypeConverterAddConversion()

void mlirTypeConverterAddConversion ( MlirTypeConverter typeConverter,
MlirTypeConverterConversionCallback convertType,
void * userData )

Add a type conversion function to the given TypeConverter.

Definition at line 650 of file Rewrite.cpp.

References mlirLogicalResultIsFailure(), mlirTypeIsNull(), result, unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyTypeConverter::addConversion().

◆ mlirTypeConverterConvertType()

MlirType mlirTypeConverterConvertType ( MlirTypeConverter typeConverter,
MlirType type )

Convert the given type using the given TypeConverter.

Definition at line 667 of file Rewrite.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyTypeConverter::convertType().

◆ mlirTypeConverterCreate()

MlirTypeConverter mlirTypeConverterCreate ( void )

◆ mlirTypeConverterDestroy()

void mlirTypeConverterDestroy ( MlirTypeConverter typeConverter)

Destroy the given TypeConverter.

Definition at line 646 of file Rewrite.cpp.

References unwrap().

Referenced by mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN::PyTypeConverter::~PyTypeConverter().

◆ mlirWalkAndApplyPatterns()

void mlirWalkAndApplyPatterns ( MlirOperation op,
MlirFrozenRewritePatternSet patterns )

Applies the given patterns to the given op by a fast walk-based pattern rewrite driver.

Definition at line 450 of file Rewrite.cpp.

References unwrap(), and mlir::walkAndApplyPatterns().

◆ unwrap()

mlir::GreedyRewriteConfig * unwrap ( MlirGreedyRewriteDriverConfig config)
inline

GreedyRewriteDriverConfig API.

Definition at line 301 of file Rewrite.cpp.

Referenced by mlirApplyFullConversion(), mlirApplyPartialConversion(), mlirApplyPatternsAndFoldGreedily(), mlirApplyPatternsAndFoldGreedilyWithOp(), mlirConversionConfigDestroy(), mlirConversionConfigEnableBuildMaterializations(), mlirConversionConfigGetFoldingMode(), mlirConversionConfigIsBuildMaterializationsEnabled(), mlirConversionConfigSetFoldingMode(), mlirConversionPatternAsRewritePattern(), mlirConversionPatternGetTypeConverter(), mlirConversionPatternRewriterAsPatternRewriter(), mlirConversionPatternRewriterConvertRegionTypes(), mlirConversionTargetAddDynamicallyLegalDialect(), mlirConversionTargetAddDynamicallyLegalOp(), mlirConversionTargetAddIllegalDialect(), mlirConversionTargetAddIllegalOp(), mlirConversionTargetAddLegalDialect(), mlirConversionTargetAddLegalOp(), mlirConversionTargetCreate(), mlirConversionTargetDestroy(), mlirConversionTargetMarkOpRecursivelyLegal(), mlirConversionTargetMarkUnknownOpDynamicallyLegal(), mlirFreezeRewritePattern(), mlirFrozenRewritePatternSetDestroy(), mlirGreedyRewriteDriverConfigDestroy(), mlirGreedyRewriteDriverConfigEnableConstantCSE(), mlirGreedyRewriteDriverConfigEnableFolding(), mlirGreedyRewriteDriverConfigGetMaxIterations(), mlirGreedyRewriteDriverConfigGetMaxNumRewrites(), mlirGreedyRewriteDriverConfigGetRegionSimplificationLevel(), mlirGreedyRewriteDriverConfigGetStrictness(), mlirGreedyRewriteDriverConfigGetUseTopDownTraversal(), mlirGreedyRewriteDriverConfigIsConstantCSEEnabled(), mlirGreedyRewriteDriverConfigIsFoldingEnabled(), mlirGreedyRewriteDriverConfigSetMaxIterations(), mlirGreedyRewriteDriverConfigSetMaxNumRewrites(), mlirGreedyRewriteDriverConfigSetRegionSimplificationLevel(), mlirGreedyRewriteDriverConfigSetStrictness(), mlirGreedyRewriteDriverConfigSetUseTopDownTraversal(), mlirIRRewriterCreate(), mlirIRRewriterCreateFromOp(), mlirIRRewriterDestroy(), mlirOpConversionPatternCreate(), mlirOpRewritePatternCreate(), mlirPatternRewriterAsBase(), mlirRewritePatternSetAdd(), mlirRewritePatternSetCreate(), mlirRewritePatternSetDestroy(), mlirRewritePatternSetGetContext(), mlirRewriterBaseCancelOpModification(), mlirRewriterBaseClearInsertionPoint(), mlirRewriterBaseClone(), mlirRewriterBaseCloneRegionBefore(), mlirRewriterBaseCloneWithMapping(), mlirRewriterBaseCloneWithoutRegions(), mlirRewriterBaseCreateBlockBefore(), mlirRewriterBaseEraseBlock(), mlirRewriterBaseEraseOp(), mlirRewriterBaseFinalizeOpModification(), mlirRewriterBaseGetBlock(), mlirRewriterBaseGetContext(), mlirRewriterBaseGetInsertionBlock(), mlirRewriterBaseGetOperationAfterInsertion(), mlirRewriterBaseInlineBlockBefore(), mlirRewriterBaseInlineRegionBefore(), mlirRewriterBaseInsert(), mlirRewriterBaseMergeBlocks(), mlirRewriterBaseMoveBlockBefore(), mlirRewriterBaseMoveOpAfter(), mlirRewriterBaseMoveOpBefore(), mlirRewriterBaseReplaceAllOpUsesWithOperation(), mlirRewriterBaseReplaceAllOpUsesWithValueRange(), mlirRewriterBaseReplaceAllUsesExcept(), mlirRewriterBaseReplaceAllUsesWith(), mlirRewriterBaseReplaceAllValueRangeUsesWith(), mlirRewriterBaseReplaceOpUsesWithinBlock(), mlirRewriterBaseReplaceOpWithOperation(), mlirRewriterBaseReplaceOpWithValues(), mlirRewriterBaseSetInsertionPointAfter(), mlirRewriterBaseSetInsertionPointAfterValue(), mlirRewriterBaseSetInsertionPointBefore(), mlirRewriterBaseSetInsertionPointToEnd(), mlirRewriterBaseSetInsertionPointToStart(), mlirRewriterBaseStartOpModification(), mlirTypeConverterAddConversion(), mlirTypeConverterConvertType(), mlirTypeConverterDestroy(), and mlirWalkAndApplyPatterns().

◆ wrap()