MLIR  16.0.0git
Public Member Functions | List of all members
mlir::ConversionPatternRewriter Class Referencefinal

This class implements a pattern rewriter for use with ConversionPatterns. More...

#include "mlir/Transforms/DialectConversion.h"

+ Inheritance diagram for mlir::ConversionPatternRewriter:
+ Collaboration diagram for mlir::ConversionPatternRewriter:

Public Member Functions

 ConversionPatternRewriter (MLIRContext *ctx)
 
 ~ConversionPatternRewriter () override
 
BlockapplySignatureConversion (Region *region, TypeConverter::SignatureConversion &conversion, TypeConverter *converter=nullptr)
 Apply a signature conversion to the entry block of the given region. More...
 
FailureOr< Block * > convertRegionTypes (Region *region, TypeConverter &converter, TypeConverter::SignatureConversion *entryConversion=nullptr)
 Convert the types of block arguments within the given region. More...
 
LogicalResult convertNonEntryRegionTypes (Region *region, TypeConverter &converter, ArrayRef< TypeConverter::SignatureConversion > blockConversions)
 Convert the types of block arguments within the given region except for the entry region. More...
 
void replaceUsesOfBlockArgument (BlockArgument from, Value to)
 Replace all the uses of the block argument from with value to. More...
 
Value getRemappedValue (Value key)
 Return the converted value of 'key' with a type defined by the type converter of the currently executing pattern. More...
 
LogicalResult getRemappedValues (ValueRange keys, SmallVectorImpl< Value > &results)
 Return the converted values that replace 'keys' with types defined by the type converter of the currently executing pattern. More...
 
void replaceOpWithIf (Operation *op, ValueRange newValues, bool *allUsesReplaced, llvm::unique_function< bool(OpOperand &) const > functor) override
 PatternRewriter hook for replacing the results of an operation when the given functor returns true. More...
 
void replaceOp (Operation *op, ValueRange newValues) override
 PatternRewriter hook for replacing the results of an operation. More...
 
void eraseOp (Operation *op) override
 PatternRewriter hook for erasing a dead operation. More...
 
void eraseBlock (Block *block) override
 PatternRewriter hook for erase all operations in a block. More...
 
void notifyBlockCreated (Block *block) override
 PatternRewriter hook creating a new block. More...
 
BlocksplitBlock (Block *block, Block::iterator before) override
 PatternRewriter hook for splitting a block into two parts. More...
 
void mergeBlocks (Block *source, Block *dest, ValueRange argValues) override
 PatternRewriter hook for merging a block into another. More...
 
void inlineRegionBefore (Region &region, Region &parent, Region::iterator before) override
 PatternRewriter hook for moving blocks out of a region. More...
 
void cloneRegionBefore (Region &region, Region &parent, Region::iterator before, BlockAndValueMapping &mapping) override
 PatternRewriter hook for cloning blocks of one region into another. More...
 
void notifyOperationInserted (Operation *op) override
 PatternRewriter hook for inserting a new operation. More...
 
void startRootUpdate (Operation *op) override
 PatternRewriter hook for updating the root operation in-place. More...
 
void finalizeRootUpdate (Operation *op) override
 PatternRewriter hook for updating the root operation in-place. More...
 
void cancelRootUpdate (Operation *op) override
 PatternRewriter hook for updating the root operation in-place. More...
 
LogicalResult notifyMatchFailure (Location loc, function_ref< void(Diagnostic &)> reasonCallback) override
 PatternRewriter hook for notifying match failure reasons. More...
 
detail::ConversionPatternRewriterImplgetImpl ()
 Return a reference to the internal implementation. More...
 
- Public Member Functions inherited from mlir::RewriterBase
void inlineRegionBefore (Region &region, Block *before)
 
void cloneRegionBefore (Region &region, Region &parent, Region::iterator before)
 
void cloneRegionBefore (Region &region, Block *before)
 
void replaceOpWithIf (Operation *op, ValueRange newValues, llvm::unique_function< bool(OpOperand &) const > functor)
 
void replaceOpWithinBlock (Operation *op, ValueRange newValues, Block *block, bool *allUsesReplaced=nullptr)
 This method replaces the uses of the results of op with the values in newValues when a use is nested within the given block. More...
 
template<typename OpTy , typename... Args>
OpTy replaceOpWithNewOp (Operation *op, Args &&...args)
 Replaces the result op with a new op that is created without verification. More...
 
void mergeBlockBefore (Block *source, Operation *op, ValueRange argValues=llvm::None)
 
template<typename CallableT >
void updateRootInPlace (Operation *root, CallableT &&callable)
 This method is a utility wrapper around a root update of an operation. More...
 
template<typename CallbackT >
std::enable_if_t<!std::is_convertible< CallbackT, Twine >::value, LogicalResultnotifyMatchFailure (Location loc, CallbackT &&reasonCallback)
 Used to notify the rewriter that the IR failed to be rewritten because of a match failure, and provide a callback to populate a diagnostic with the reason why the failure occurred. More...
 
template<typename CallbackT >
std::enable_if_t<!std::is_convertible< CallbackT, Twine >::value, LogicalResultnotifyMatchFailure (Operation *op, CallbackT &&reasonCallback)
 
template<typename ArgT >
LogicalResult notifyMatchFailure (ArgT &&arg, const Twine &msg)
 
template<typename ArgT >
LogicalResult notifyMatchFailure (ArgT &&arg, const char *msg)
 
- Public Member Functions inherited from mlir::OpBuilder
 OpBuilder (MLIRContext *ctx, Listener *listener=nullptr)
 Create a builder with the given context. More...
 
 OpBuilder (Region *region, Listener *listener=nullptr)
 Create a builder and set the insertion point to the start of the region. More...
 
 OpBuilder (Region &region, Listener *listener=nullptr)
 
 OpBuilder (Operation *op, Listener *listener=nullptr)
 Create a builder and set insertion point to the given operation, which will cause subsequent insertions to go right before it. More...
 
 OpBuilder (Block *block, Block::iterator insertPoint, Listener *listener=nullptr)
 
void setListener (Listener *newListener)
 Sets the listener of this builder to the one provided. More...
 
ListenergetListener () const
 Returns the current listener of this builder, or nullptr if this builder doesn't have a listener. More...
 
void clearInsertionPoint ()
 Reset the insertion point to no location. More...
 
InsertPoint saveInsertionPoint () const
 Return a saved insertion point. More...
 
void restoreInsertionPoint (InsertPoint ip)
 Restore the insert point to a previously saved point. More...
 
void setInsertionPoint (Block *block, Block::iterator insertPoint)
 Set the insertion point to the specified location. More...
 
void setInsertionPoint (Operation *op)
 Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it. More...
 
void setInsertionPointAfter (Operation *op)
 Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it. More...
 
void setInsertionPointAfterValue (Value val)
 Sets the insertion point to the node after the specified value. More...
 
void setInsertionPointToStart (Block *block)
 Sets the insertion point to the start of the specified block. More...
 
void setInsertionPointToEnd (Block *block)
 Sets the insertion point to the end of the specified block. More...
 
BlockgetInsertionBlock () const
 Return the block the current insertion point belongs to. More...
 
Block::iterator getInsertionPoint () const
 Returns the current insertion point of the builder. More...
 
BlockgetBlock () const
 Returns the current block of the builder. More...
 
BlockcreateBlock (Region *parent, Region::iterator insertPt={}, TypeRange argTypes=llvm::None, ArrayRef< Location > locs=llvm::None)
 Add new block with 'argTypes' arguments and set the insertion point to the end of it. More...
 
BlockcreateBlock (Block *insertBefore, TypeRange argTypes=llvm::None, ArrayRef< Location > locs=llvm::None)
 Add new block with 'argTypes' arguments and set the insertion point to the end of it. More...
 
Operationinsert (Operation *op)
 Insert the given operation at the current insertion point and return it. More...
 
Operationcreate (const OperationState &state)
 Creates an operation given the fields represented as an OperationState. More...
 
Operationcreate (Location loc, StringAttr opName, ValueRange operands, TypeRange types={}, ArrayRef< NamedAttribute > attributes={}, BlockRange successors={}, MutableArrayRef< std::unique_ptr< Region >> regions={})
 Creates an operation with the given fields. More...
 
template<typename OpTy , typename... Args>
OpTy create (Location location, Args &&...args)
 Create an operation of specific op type at the current insertion point. More...
 
template<typename OpTy , typename... Args>
void createOrFold (SmallVectorImpl< Value > &results, Location location, Args &&...args)
 Create an operation of specific op type at the current insertion point, and immediately try to fold it. More...
 
template<typename OpTy , typename... Args>
std::enable_if_t< OpTy::template hasTrait< OpTrait::OneResult >), ValuecreateOrFold (Location location, Args &&...args)
 Overload to create or fold a single result operation. More...
 
template<typename OpTy , typename... Args>
std::enable_if_t< OpTy::template hasTrait< OpTrait::ZeroResults >), OpTy > createOrFold (Location location, Args &&...args)
 Overload to create or fold a zero result operation. More...
 
LogicalResult tryFold (Operation *op, SmallVectorImpl< Value > &results)
 Attempts to fold the given operation and places new results within 'results'. More...
 
Operationclone (Operation &op, BlockAndValueMapping &mapper)
 Creates a deep copy of the specified operation, remapping any operands that use values outside of the operation using the map that is provided ( leaving them alone if no entry is present). More...
 
Operationclone (Operation &op)
 
OperationcloneWithoutRegions (Operation &op, BlockAndValueMapping &mapper)
 Creates a deep copy of this operation but keep the operation regions empty. More...
 
OperationcloneWithoutRegions (Operation &op)
 
template<typename OpT >
OpT cloneWithoutRegions (OpT op)
 
- Public Member Functions inherited from mlir::Builder
 Builder (MLIRContext *context)
 
 Builder (Operation *op)
 
MLIRContextgetContext () const
 
Location getUnknownLoc ()
 
Location getFusedLoc (ArrayRef< Location > locs, Attribute metadata=Attribute())
 
FloatType getBF16Type ()
 
FloatType getF16Type ()
 
FloatType getF32Type ()
 
FloatType getF64Type ()
 
FloatType getF80Type ()
 
FloatType getF128Type ()
 
IndexType getIndexType ()
 
IntegerType getI1Type ()
 
IntegerType getI2Type ()
 
IntegerType getI4Type ()
 
IntegerType getI8Type ()
 
IntegerType getI16Type ()
 
IntegerType getI32Type ()
 
IntegerType getI64Type ()
 
IntegerType getIntegerType (unsigned width)
 
IntegerType getIntegerType (unsigned width, bool isSigned)
 
FunctionType getFunctionType (TypeRange inputs, TypeRange results)
 
TupleType getTupleType (TypeRange elementTypes)
 
NoneType getNoneType ()
 
template<typename Ty , typename... Args>
Ty getType (Args &&...args)
 Get or construct an instance of the type Ty with provided arguments. More...
 
template<typename Attr , typename... Args>
Attr getAttr (Args &&...args)
 Get or construct an instance of the attribute Attr with provided arguments. More...
 
NamedAttribute getNamedAttr (StringRef name, Attribute val)
 
UnitAttr getUnitAttr ()
 
BoolAttr getBoolAttr (bool value)
 
DictionaryAttr getDictionaryAttr (ArrayRef< NamedAttribute > value)
 
IntegerAttr getIntegerAttr (Type type, int64_t value)
 
IntegerAttr getIntegerAttr (Type type, const APInt &value)
 
FloatAttr getFloatAttr (Type type, double value)
 
FloatAttr getFloatAttr (Type type, const APFloat &value)
 
StringAttr getStringAttr (const Twine &bytes)
 
ArrayAttr getArrayAttr (ArrayRef< Attribute > value)
 
Attribute getZeroAttr (Type type)
 
FloatAttr getF16FloatAttr (float value)
 
FloatAttr getF32FloatAttr (float value)
 
FloatAttr getF64FloatAttr (double value)
 
IntegerAttr getI8IntegerAttr (int8_t value)
 
IntegerAttr getI16IntegerAttr (int16_t value)
 
IntegerAttr getI32IntegerAttr (int32_t value)
 
IntegerAttr getI64IntegerAttr (int64_t value)
 
IntegerAttr getIndexAttr (int64_t value)
 
IntegerAttr getSI32IntegerAttr (int32_t value)
 Signed and unsigned integer attribute getters. More...
 
IntegerAttr getUI32IntegerAttr (uint32_t value)
 
DenseIntElementsAttr getBoolVectorAttr (ArrayRef< bool > values)
 Vector-typed DenseIntElementsAttr getters. values must not be empty. More...
 
DenseIntElementsAttr getI32VectorAttr (ArrayRef< int32_t > values)
 
DenseIntElementsAttr getI64VectorAttr (ArrayRef< int64_t > values)
 
DenseIntElementsAttr getIndexVectorAttr (ArrayRef< int64_t > values)
 
DenseIntElementsAttr getI32TensorAttr (ArrayRef< int32_t > values)
 Tensor-typed DenseIntElementsAttr getters. More...
 
DenseIntElementsAttr getI64TensorAttr (ArrayRef< int64_t > values)
 
DenseIntElementsAttr getIndexTensorAttr (ArrayRef< int64_t > values)
 
DenseBoolArrayAttr getDenseBoolArrayAttr (ArrayRef< bool > values)
 Tensor-typed DenseArrayAttr getters. More...
 
DenseI8ArrayAttr getDenseI8ArrayAttr (ArrayRef< int8_t > values)
 
DenseI16ArrayAttr getDenseI16ArrayAttr (ArrayRef< int16_t > values)
 
DenseI32ArrayAttr getDenseI32ArrayAttr (ArrayRef< int32_t > values)
 
DenseI64ArrayAttr getDenseI64ArrayAttr (ArrayRef< int64_t > values)
 
DenseF32ArrayAttr getDenseF32ArrayAttr (ArrayRef< float > values)
 
DenseF64ArrayAttr getDenseF64ArrayAttr (ArrayRef< double > values)
 
ArrayAttr getAffineMapArrayAttr (ArrayRef< AffineMap > values)
 
ArrayAttr getBoolArrayAttr (ArrayRef< bool > values)
 
ArrayAttr getI32ArrayAttr (ArrayRef< int32_t > values)
 
ArrayAttr getI64ArrayAttr (ArrayRef< int64_t > values)
 
ArrayAttr getIndexArrayAttr (ArrayRef< int64_t > values)
 
ArrayAttr getF32ArrayAttr (ArrayRef< float > values)
 
ArrayAttr getF64ArrayAttr (ArrayRef< double > values)
 
ArrayAttr getStrArrayAttr (ArrayRef< StringRef > values)
 
ArrayAttr getTypeArrayAttr (TypeRange values)
 
AffineExpr getAffineDimExpr (unsigned position)
 
AffineExpr getAffineSymbolExpr (unsigned position)
 
AffineExpr getAffineConstantExpr (int64_t constant)
 
AffineMap getEmptyAffineMap ()
 Returns a zero result affine map with no dimensions or symbols: () -> (). More...
 
AffineMap getConstantAffineMap (int64_t val)
 Returns a single constant result affine map with 0 dimensions and 0 symbols. More...
 
AffineMap getDimIdentityMap ()
 
AffineMap getMultiDimIdentityMap (unsigned rank)
 
AffineMap getSymbolIdentityMap ()
 
AffineMap getSingleDimShiftAffineMap (int64_t shift)
 Returns a map that shifts its (single) input dimension by 'shift'. More...
 
AffineMap getShiftedAffineMap (AffineMap map, int64_t shift)
 Returns an affine map that is a translation (shift) of all result expressions in 'map' by 'shift'. More...
 
- Public Member Functions inherited from mlir::OpBuilder::Listener
virtual ~Listener ()
 

Additional Inherited Members

- Static Public Member Functions inherited from mlir::OpBuilder
static OpBuilder atBlockBegin (Block *block, Listener *listener=nullptr)
 Create a builder and set the insertion point to before the first operation in the block but still inside the block. More...
 
static OpBuilder atBlockEnd (Block *block, Listener *listener=nullptr)
 Create a builder and set the insertion point to after the last operation in the block but still inside the block. More...
 
static OpBuilder atBlockTerminator (Block *block, Listener *listener=nullptr)
 Create a builder and set the insertion point to before the block terminator. More...
 
- Protected Member Functions inherited from mlir::RewriterBase
 RewriterBase (MLIRContext *ctx)
 Initialize the builder with this rewriter as the listener. More...
 
 RewriterBase (const OpBuilder &otherBuilder)
 
 ~RewriterBase () override
 
virtual void notifyRootReplaced (Operation *op)
 These are the callback methods that subclasses can choose to implement if they would like to be notified about certain types of mutations. More...
 
virtual void notifyOperationRemoved (Operation *op)
 This is called on an operation that a rewrite is removing, right before the operation is deleted. More...
 
- Protected Attributes inherited from mlir::Builder
MLIRContextcontext
 

Detailed Description

This class implements a pattern rewriter for use with ConversionPatterns.

It extends the base PatternRewriter and provides special conversion specific hooks.

Definition at line 521 of file DialectConversion.h.

Constructor & Destructor Documentation

◆ ConversionPatternRewriter()

ConversionPatternRewriter::ConversionPatternRewriter ( MLIRContext ctx)
explicit

Definition at line 1493 of file DialectConversion.cpp.

References ~ConversionPatternRewriter().

◆ ~ConversionPatternRewriter()

ConversionPatternRewriter::~ConversionPatternRewriter ( )
overridedefault

Member Function Documentation

◆ applySignatureConversion()

Block * ConversionPatternRewriter::applySignatureConversion ( Region region,
TypeConverter::SignatureConversion conversion,
TypeConverter converter = nullptr 
)

Apply a signature conversion to the entry block of the given region.

This replaces the entry block with a new block containing the updated signature. The new entry block to the region is returned for convenience.

If provided, converter will be used for any materializations.

Definition at line 1542 of file DialectConversion.cpp.

Referenced by getBlockIt(), and mlir::spirv::getMemorySpaceToStorageClassTarget().

◆ cancelRootUpdate()

void ConversionPatternRewriter::cancelRootUpdate ( Operation op)
overridevirtual

PatternRewriter hook for updating the root operation in-place.

Reimplemented from mlir::RewriterBase.

Definition at line 1658 of file DialectConversion.cpp.

Referenced by sourceMaterializationCallback().

◆ cloneRegionBefore()

void ConversionPatternRewriter::cloneRegionBefore ( Region region,
Region parent,
Region::iterator  before,
BlockAndValueMapping mapping 
)
overridevirtual

PatternRewriter hook for cloning blocks of one region into another.

The given region to clone must not have been modified as part of conversion yet, i.e. it must be within an operation that is either in the process of conversion, or has not yet been converted.

Reimplemented from mlir::RewriterBase.

Definition at line 1621 of file DialectConversion.cpp.

References mlir::RewriterBase::cloneRegionBefore(), mlir::Region::empty(), mlir::Region::front(), mlir::Region::getLoc(), and mlir::BlockAndValueMapping::lookup().

◆ convertNonEntryRegionTypes()

LogicalResult ConversionPatternRewriter::convertNonEntryRegionTypes ( Region region,
TypeConverter converter,
ArrayRef< TypeConverter::SignatureConversion blockConversions 
)

Convert the types of block arguments within the given region except for the entry region.

This replaces each non-entry block with a new block containing the updated signature.

If special conversion behavior is needed for the non-entry blocks (for example, we need to convert only a subset of a BB arguments), such behavior can be specified in blockConversions.

Definition at line 1554 of file DialectConversion.cpp.

Referenced by sourceMaterializationCallback().

◆ convertRegionTypes()

FailureOr< Block * > ConversionPatternRewriter::convertRegionTypes ( Region region,
TypeConverter converter,
TypeConverter::SignatureConversion entryConversion = nullptr 
)

Convert the types of block arguments within the given region.

This replaces each block with a new block containing the updated signature. The entry block may have a special conversion if entryConversion is provided. On success, the new entry block to the region is returned for convenience. Otherwise, failure is returned.

Definition at line 1548 of file DialectConversion.cpp.

Referenced by addResumeFunction(), mlir::TypeConverter::convertBlockSignature(), convertStructType(), mlir::ValueDecomposer::decomposeValue(), lowerAsEntryFunction(), lowerEntryPointABIAttr(), mlir::GPUFuncOpLowering::matchAndRewrite(), mlir::SPIRVTypeConverter::SPIRVTypeConverter(), and wrapExternalFunction().

◆ eraseBlock()

void ConversionPatternRewriter::eraseBlock ( Block block)
overridevirtual

PatternRewriter hook for erase all operations in a block.

This is not yet implemented for dialect conversion.

Reimplemented from mlir::RewriterBase.

Definition at line 1528 of file DialectConversion.cpp.

References eraseOp().

Referenced by convertStructType(), getDefaultABIAttrs(), and mergeBlocks().

◆ eraseOp()

void ConversionPatternRewriter::eraseOp ( Operation op)
overridevirtual

◆ finalizeRootUpdate()

void ConversionPatternRewriter::finalizeRootUpdate ( Operation op)
overridevirtual

PatternRewriter hook for updating the root operation in-place.

Reimplemented from mlir::RewriterBase.

Definition at line 1649 of file DialectConversion.cpp.

Referenced by sourceMaterializationCallback().

◆ getImpl()

detail::ConversionPatternRewriterImpl & ConversionPatternRewriter::getImpl ( )

Return a reference to the internal implementation.

Definition at line 1678 of file DialectConversion.cpp.

Referenced by mlir::ConversionPattern::matchAndRewrite().

◆ getRemappedValue()

Value ConversionPatternRewriter::getRemappedValue ( Value  key)

Return the converted value of 'key' with a type defined by the type converter of the currently executing pattern.

Return nullptr in the case of failure, the remapped value otherwise.

Definition at line 1572 of file DialectConversion.cpp.

References mlir::failed().

Referenced by getBlockIt().

◆ getRemappedValues()

LogicalResult ConversionPatternRewriter::getRemappedValues ( ValueRange  keys,
SmallVectorImpl< Value > &  results 
)

Return the converted values that replace 'keys' with types defined by the type converter of the currently executing pattern.

Returns failure if the remap failed, success otherwise.

Definition at line 1581 of file DialectConversion.cpp.

References mlir::success().

Referenced by getBlockIt().

◆ inlineRegionBefore()

void ConversionPatternRewriter::inlineRegionBefore ( Region region,
Region parent,
Region::iterator  before 
)
overridevirtual

◆ mergeBlocks()

void ConversionPatternRewriter::mergeBlocks ( Block source,
Block dest,
ValueRange  argValues 
)
overridevirtual

◆ notifyBlockCreated()

void ConversionPatternRewriter::notifyBlockCreated ( Block block)
overridevirtual

PatternRewriter hook creating a new block.

Reimplemented from mlir::OpBuilder::Listener.

Definition at line 1589 of file DialectConversion.cpp.

◆ notifyMatchFailure()

LogicalResult ConversionPatternRewriter::notifyMatchFailure ( Location  loc,
function_ref< void(Diagnostic &)>  reasonCallback 
)
overridevirtual

◆ notifyOperationInserted()

void ConversionPatternRewriter::notifyOperationInserted ( Operation op)
overridevirtual

PatternRewriter hook for inserting a new operation.

Reimplemented from mlir::OpBuilder::Listener.

Definition at line 1634 of file DialectConversion.cpp.

References mlir::Operation::getName().

◆ replaceOp()

void ConversionPatternRewriter::replaceOp ( Operation op,
ValueRange  newValues 
)
overridevirtual

◆ replaceOpWithIf()

void ConversionPatternRewriter::replaceOpWithIf ( Operation op,
ValueRange  newValues,
bool *  allUsesReplaced,
llvm::unique_function< bool(OpOperand &) const >  functor 
)
overridevirtual

PatternRewriter hook for replacing the results of an operation when the given functor returns true.

Reimplemented from mlir::RewriterBase.

Definition at line 1498 of file DialectConversion.cpp.

◆ replaceUsesOfBlockArgument()

void ConversionPatternRewriter::replaceUsesOfBlockArgument ( BlockArgument  from,
Value  to 
)

Replace all the uses of the block argument from with value to.

Definition at line 1560 of file DialectConversion.cpp.

References mlir::Operation::getName(), mlir::BlockArgument::getOwner(), and mlir::Block::getParentOp().

Referenced by mlir::GPUFuncOpLowering::matchAndRewrite(), mergeBlocks(), and wrapExternalFunction().

◆ splitBlock()

Block * ConversionPatternRewriter::splitBlock ( Block block,
Block::iterator  before 
)
overridevirtual

PatternRewriter hook for splitting a block into two parts.

Reimplemented from mlir::RewriterBase.

Definition at line 1593 of file DialectConversion.cpp.

References mlir::RewriterBase::splitBlock().

Referenced by convertStructType(), AssertOpLowering::matchAndRewrite(), outlineExecuteOp(), and sourceMaterializationCallback().

◆ startRootUpdate()

void ConversionPatternRewriter::startRootUpdate ( Operation op)
overridevirtual

PatternRewriter hook for updating the root operation in-place.

Note: These methods only track updates to the top-level operation itself, and not nested regions. Updates to regions will still require notification through other more specific hooks above.

Reimplemented from mlir::RewriterBase.

Definition at line 1642 of file DialectConversion.cpp.

Referenced by sourceMaterializationCallback().


The documentation for this class was generated from the following files: