MLIR
22.0.0git
|
Classes | |
struct | SingleEraseRewriter |
A rewriter that keeps track of erased ops and blocks. More... | |
Public Member Functions | |
ConversionPatternRewriterImpl (ConversionPatternRewriter &rewriter, const ConversionConfig &config) | |
RewriterState | getCurrentState () |
Return the current state of the rewriter. More... | |
void | applyRewrites () |
Apply all requested operation rewrites. More... | |
void | resetState (RewriterState state, StringRef patternName="") |
Reset the state of the rewriter to a previously saved point. More... | |
template<typename RewriteTy , typename... Args> | |
void | appendRewrite (Args &&...args) |
Append a rewrite. More... | |
void | undoRewrites (unsigned numRewritesToKeep=0, StringRef patternName="") |
Undo the rewrites (motions, splits) one by one in reverse order until "numRewritesToKeep" rewrites remains. More... | |
LogicalResult | remapValues (StringRef valueDiagTag, std::optional< Location > inputLoc, ValueRange values, SmallVector< ValueVector > &remapped) |
Remap the given values to those with potentially different types. More... | |
bool | isOpIgnored (Operation *op) const |
Return "true" if the given operation is ignored, and does not need to be converted. More... | |
bool | wasOpReplaced (Operation *op) const |
Return "true" if the given operation was replaced or erased. More... | |
ValueVector | lookupOrDefault (Value from, TypeRange desiredTypes={}, bool skipPureTypeConversions=false) const |
Lookup the most recently mapped values with the desired types in the mapping, taking into account only replacements. More... | |
ValueVector | lookupOrNull (Value from, TypeRange desiredTypes={}) const |
Lookup the given value within the map, or return an empty vector if the value is not mapped. More... | |
FailureOr< Block * > | convertRegionTypes (Region *region, const TypeConverter &converter, TypeConverter::SignatureConversion *entryConversion) |
Convert the types of block arguments within the given region. More... | |
Block * | applySignatureConversion (Block *block, const TypeConverter *converter, TypeConverter::SignatureConversion &signatureConversion) |
Apply the given signature conversion on the given block. More... | |
void | replaceOp (Operation *op, SmallVector< SmallVector< Value >> &&newValues) |
Replace the results of the given operation with the given values and erase the operation. More... | |
void | replaceUsesOfBlockArgument (BlockArgument from, ValueRange to, const TypeConverter *converter) |
Replace the given block argument with the given values. More... | |
void | eraseBlock (Block *block) |
Erase the given block and its contents. More... | |
void | inlineBlockBefore (Block *source, Block *dest, Block::iterator before) |
Inline the source block into the destination block before the given iterator. More... | |
ValueRange | buildUnresolvedMaterialization (MaterializationKind kind, OpBuilder::InsertPoint ip, Location loc, ValueVector valuesToMap, ValueRange inputs, TypeRange outputTypes, Type originalType, const TypeConverter *converter, bool isPureTypeConversion=true) |
Build an unresolved materialization operation given a range of output types and a list of input operands. More... | |
Value | findOrBuildReplacementValue (Value value, const TypeConverter *converter) |
Find a replacement value for the given SSA value in the conversion value mapping. More... | |
void | notifyOperationInserted (Operation *op, OpBuilder::InsertPoint previous) override |
Notify the listener that the specified operation was inserted. More... | |
void | notifyBlockInserted (Block *block, Region *previous, Region::iterator previousIt) override |
Notifies that a block was inserted. More... | |
void | notifyMatchFailure (Location loc, function_ref< void(Diagnostic &)> reasonCallback) override |
Notifies that a pattern match failed for the given reason. More... | |
![]() | |
Listener () | |
virtual void | notifyBlockErased (Block *block) |
Notify the listener that the specified block is about to be erased. More... | |
virtual void | notifyOperationModified (Operation *op) |
Notify the listener that the specified operation was modified in-place. More... | |
virtual void | notifyOperationReplaced (Operation *op, Operation *replacement) |
Notify the listener that all uses of the specified operation's results are about to be replaced with the results of another operation. More... | |
virtual void | notifyOperationReplaced (Operation *op, ValueRange replacement) |
Notify the listener that all uses of the specified operation's results are about to be replaced with the a range of values, potentially produced by other operations. More... | |
virtual void | notifyOperationErased (Operation *op) |
Notify the listener that the specified operation is about to be erased. More... | |
virtual void | notifyPatternBegin (const Pattern &pattern, Operation *op) |
Notify the listener that the specified pattern is about to be applied at the specified root operation. More... | |
virtual void | notifyPatternEnd (const Pattern &pattern, LogicalResult status) |
Notify the listener that a pattern application finished with the specified status. More... | |
![]() | |
Listener () | |
virtual | ~Listener ()=default |
![]() | |
Kind | getKind () const |
Public Attributes | |
ConversionPatternRewriter & | rewriter |
The rewriter that is used to perform the conversion. More... | |
ConversionValueMapping | mapping |
SmallVector< std::unique_ptr< IRRewrite > > | rewrites |
Ordered list of block operations (creations, splits, motions). More... | |
SetVector< Operation * > | ignoredOps |
A set of operations that should no longer be considered for legalization. More... | |
SetVector< Operation * > | replacedOps |
A set of operations that were replaced/erased. More... | |
SetVector< Operation * > | patternNewOps |
A set of operations that were created by the current pattern. More... | |
SetVector< Operation * > | patternModifiedOps |
A set of operations that were modified by the current pattern. More... | |
SetVector< Block * > | patternInsertedBlocks |
A set of blocks that were inserted (newly-created blocks or moved blocks) by the current pattern. More... | |
DenseSet< UnrealizedConversionCastOp > | patternMaterializations |
A list of unresolved materializations that were created by the current pattern. More... | |
DenseMap< UnrealizedConversionCastOp, UnresolvedMaterializationInfo > | unresolvedMaterializations |
A mapping for looking up metadata of unresolved materializations. More... | |
const TypeConverter * | currentTypeConverter = nullptr |
The current type converter, or nullptr if no type converter is currently active. More... | |
DenseMap< Region *, const TypeConverter * > | regionToConverter |
A mapping of regions to type converters that should be used when converting the arguments of blocks within that region. More... | |
const ConversionConfig & | config |
Dialect conversion configuration. More... | |
DenseSet< Operation * > | erasedOps |
A set of erased operations. More... | |
DenseSet< Block * > | erasedBlocks |
A set of erased blocks. More... | |
IRRewriter | notifyingRewriter |
A rewriter that notifies the listener (if any) about all IR modifications. More... | |
DenseSet< BlockArgument > | replacedArgs |
A set of replaced block arguments. More... | |
SmallPtrSet< Operation *, 1 > | pendingRootUpdates |
A set of operations that have pending updates. More... | |
llvm::impl::raw_ldbg_ostream | os |
A raw output stream used to prefix the debug log. More... | |
llvm::ScopedPrinter | logger {os} |
A logger used to emit diagnostics during the conversion process. More... | |
std::string | logPrefix |
Additional Inherited Members | |
![]() | |
enum class | Kind { OpBuilderListener = 0 , RewriterBaseListener = 1 } |
The kind of listener. More... | |
![]() | |
static bool | classof (const OpBuilder::Listener *base) |
![]() | |
Listener (Kind kind) | |
![]() | |
ListenerBase (Kind kind) | |
Definition at line 850 of file DialectConversion.cpp.
|
inlineexplicit |
Definition at line 851 of file DialectConversion.cpp.
|
inline |
Append a rewrite.
Rewrites are committed upon success and rolled back upon failure.
Definition at line 875 of file DialectConversion.cpp.
References mlir::config.
void ConversionPatternRewriterImpl::applyRewrites | ( | ) |
Apply all requested operation rewrites.
This method is invoked when the conversion process succeeds.
Definition at line 1258 of file DialectConversion.cpp.
References config, mlir::Builder::getContext(), mlir::ConversionConfig::listener, rewrite(), rewriter, and rewrites.
Referenced by mlir::OperationConverter::convertOperations().
Block * ConversionPatternRewriterImpl::applySignatureConversion | ( | Block * | block, |
const TypeConverter * | converter, | ||
TypeConverter::SignatureConversion & | signatureConversion | ||
) |
Apply the given signature conversion on the given block.
The new block containing the updated signature is returned. If no conversions were necessary, e.g. if the block has no arguments, block
is returned. converter
is used to generate any necessary cast operations that translate between the origin argument types and those specified in the signature conversion.
Definition at line 1515 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, mlir::Block::begin(), buildUnresolvedMaterialization(), config, mlir::OpBuilder::createBlock(), mlir::Block::empty(), mlir::Block::end(), mlir::ConversionPatternRewriter::eraseBlock(), mlir::Block::front(), mlir::Block::getArgument(), mlir::Block::getArguments(), mlir::Block::getArgumentTypes(), mlir::TypeConverter::SignatureConversion::getConvertedTypes(), mlir::TypeConverter::SignatureConversion::getInputMapping(), mlir::BlockArgument::getLoc(), mlir::Block::getNumArguments(), mlir::Block::getOperations(), mlir::Block::getParent(), mlir::Value::getType(), mlir::Builder::getUnknownLoc(), mlir::ConversionConfig::listener, mlir::RewriterBase::moveOpBefore(), mlir::IRObjectWithUseList< OperandType >::replaceAllUsesWith(), replaceUsesOfBlockArgument(), rewriter, and rewrites.
Referenced by convertRegionTypes().
ValueRange ConversionPatternRewriterImpl::buildUnresolvedMaterialization | ( | MaterializationKind | kind, |
OpBuilder::InsertPoint | ip, | ||
Location | loc, | ||
ValueVector | valuesToMap, | ||
ValueRange | inputs, | ||
TypeRange | outputTypes, | ||
Type | originalType, | ||
const TypeConverter * | converter, | ||
bool | isPureTypeConversion = true |
||
) |
Build an unresolved materialization operation given a range of output types and a list of input operands.
Build an unresolved materialization operation given an output type and set of input operands.
Returns the inputs if they their types match the output types.
If a cast op was built, it can optionally be returned with the castOp
output argument.
If valuesToMap
is set to a non-null Value, then that value is mapped to the results of the unresolved materialization in the conversion value mapping.
If isPureTypeConversion
is "true", the materialization is created only to resolve a type mismatch. That means it is not a regular value replacement issued by the user. (Replacement values that are created "out of thin air" appear like unresolved materializations because they are unrealized_conversion_cast ops. However, they must be treated like regular value replacements.)
Definition at line 1623 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, mlir::ConversionConfig::attachDebugMaterializationKind, config, mlir::OpBuilder::InsertPoint::getBlock(), mlir::OpBuilder::InsertPoint::getPoint(), mlir::Builder::getStringAttr(), mlir::Builder::getUnitAttr(), isPureTypeConversion(), kind, kPureTypeConversionMarker, mapping, patternMaterializations, mlir::OpBuilder::setInsertionPoint(), and unresolvedMaterializations.
Referenced by applySignatureConversion(), findOrBuildReplacementValue(), remapValues(), and replaceOp().
FailureOr< Block * > ConversionPatternRewriterImpl::convertRegionTypes | ( | Region * | region, |
const TypeConverter & | converter, | ||
TypeConverter::SignatureConversion * | entryConversion | ||
) |
Convert the types of block arguments within the given region.
Definition at line 1484 of file DialectConversion.cpp.
References applySignatureConversion(), mlir::TypeConverter::convertBlockSignature(), mlir::Region::empty(), mlir::Region::front(), and regionToConverter.
void ConversionPatternRewriterImpl::eraseBlock | ( | Block * | block | ) |
Erase the given block and its contents.
Definition at line 1908 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, config, mlir::RewriterBase::eraseBlock(), erasedBlocks, erasedOps, mlir::Region::getBlocks(), mlir::Block::getParent(), mlir::Block::getParentOp(), ignoredOps, notifyingRewriter, patternMaterializations, replacedOps, mlir::ConversionConfig::unlegalizedOps, unresolvedMaterializations, mlir::Block::walk(), and wasOpReplaced().
Value ConversionPatternRewriterImpl::findOrBuildReplacementValue | ( | Value | value, |
const TypeConverter * | converter | ||
) |
Find a replacement value for the given SSA value in the conversion value mapping.
The replacement value must have the same type as the given SSA value. If there is no replacement value with the correct type, find the latest replacement value (regardless of the type) and build a source materialization.
Definition at line 1661 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, buildUnresolvedMaterialization(), computeInsertPoint(), config, mlir::Value::getLoc(), mlir::Value::getType(), mlir::Value::getUsers(), lookupOrNull(), and mapping.
RewriterState ConversionPatternRewriterImpl::getCurrentState | ( | ) |
Return the current state of the rewriter.
Definition at line 1388 of file DialectConversion.cpp.
References ignoredOps, replacedOps, and rewrites.
void ConversionPatternRewriterImpl::inlineBlockBefore | ( | Block * | source, |
Block * | dest, | ||
Block::iterator | before | ||
) |
Inline the source block into the destination block before the given iterator.
Definition at line 1997 of file DialectConversion.cpp.
bool ConversionPatternRewriterImpl::isOpIgnored | ( | Operation * | op | ) | const |
Return "true" if the given operation is ignored, and does not need to be converted.
Definition at line 1470 of file DialectConversion.cpp.
References ignoredOps, and wasOpReplaced().
ValueVector ConversionPatternRewriterImpl::lookupOrDefault | ( | Value | from, |
TypeRange | desiredTypes = {} , |
||
bool | skipPureTypeConversions = false |
||
) | const |
Lookup the most recently mapped values with the desired types in the mapping, taking into account only replacements.
Perform a best-effort search for existing materializations with the desired types.
If skipPureTypeConversions
is "true", materializations that are pure type conversions are not considered.
Definition at line 1281 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, config, getCommonDefiningOp(), isPureTypeConversion(), mapping, and unresolvedMaterializations.
Referenced by lookupOrNull(), and remapValues().
ValueVector ConversionPatternRewriterImpl::lookupOrNull | ( | Value | from, |
TypeRange | desiredTypes = {} |
||
) | const |
Lookup the given value within the map, or return an empty vector if the value is not mapped.
If it is mapped, this follows the same behavior as lookupOrDefault
.
Definition at line 1379 of file DialectConversion.cpp.
References lookupOrDefault().
Referenced by findOrBuildReplacementValue().
|
overridevirtual |
Notifies that a block was inserted.
Reimplemented from mlir::OpBuilder::Listener.
Definition at line 1945 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, config, erasedBlocks, mlir::Operation::getName(), mlir::Block::getParentOp(), mlir::ConversionConfig::listener, logger, mlir::OpBuilder::Listener::notifyBlockInserted(), patternInsertedBlocks, and wasOpReplaced().
|
overridevirtual |
Notifies that a pattern match failed for the given reason.
Reimplemented from mlir::RewriterBase::Listener.
Definition at line 2003 of file DialectConversion.cpp.
References config, diag(), logger, mlir::ConversionConfig::notifyCallback, and mlir::Remark.
Referenced by remapValues().
|
overridevirtual |
Notify the listener that the specified operation was inserted.
previous
is the previous location of the op.previous
is empty.Note: Creating an (unlinked) op does not trigger this notification.
Reimplemented from mlir::OpBuilder::Listener.
Definition at line 1716 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, config, erasedOps, mlir::Operation::getName(), mlir::Operation::getParentOp(), mlir::OpBuilder::InsertPoint::isSet(), mlir::ConversionConfig::listener, logger, mlir::OpBuilder::Listener::notifyOperationInserted(), patternNewOps, and wasOpReplaced().
LogicalResult ConversionPatternRewriterImpl::remapValues | ( | StringRef | valueDiagTag, |
std::optional< Location > | inputLoc, | ||
ValueRange | values, | ||
SmallVector< ValueVector > & | remapped | ||
) |
Remap the given values to those with potentially different types.
Returns success if the values could be remapped, failure otherwise. valueDiagTag
is the tag used when describing a value within a diagnostic, e.g. "operand".
Definition at line 1413 of file DialectConversion.cpp.
References buildUnresolvedMaterialization(), computeInsertPoint(), mlir::TypeConverter::convertType(), currentTypeConverter, diag(), mlir::detail::enumerate(), mlir::remark::failed(), mlir::Value::getLoc(), mlir::Value::getType(), lookupOrDefault(), and notifyMatchFailure().
Referenced by mlir::ConversionPattern::matchAndRewrite().
void ConversionPatternRewriterImpl::replaceOp | ( | Operation * | op, |
SmallVector< SmallVector< Value >> && | newValues | ||
) |
Replace the results of the given operation with the given values and erase the operation.
There can be multiple replacement values for each result (1:N replacement). If the replacement values are empty, the respective result is dropped and a source materialization is built if the result still has uses.
Definition at line 1811 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, buildUnresolvedMaterialization(), computeInsertPoint(), config, currentTypeConverter, erasedBlocks, erasedOps, mlir::Operation::getNumResults(), getReplacementValues(), mlir::Operation::getResults(), mlir::ValueRange::getType(), ignoredOps, mapping, notifyingRewriter, patternMaterializations, replacedOps, mlir::RewriterBase::replaceOp(), mlir::ConversionConfig::unlegalizedOps, unresolvedMaterializations, and mlir::Operation::walk().
void ConversionPatternRewriterImpl::replaceUsesOfBlockArgument | ( | BlockArgument | from, |
ValueRange | to, | ||
const TypeConverter * | converter | ||
) |
Replace the given block argument with the given values.
The specified converter is used to build materializations (if necessary).
Definition at line 1876 of file DialectConversion.cpp.
References mlir::ConversionConfig::allowPatternRollback, config, mlir::Value::getContext(), mlir::BlockArgument::getOwner(), getReplacementValues(), mapping, performReplaceBlockArg(), and replacedArgs.
Referenced by applySignatureConversion().
void ConversionPatternRewriterImpl::resetState | ( | RewriterState | state, |
StringRef | patternName = "" |
||
) |
Reset the state of the rewriter to a previously saved point.
Optionally, the name of the pattern that triggered the rollback can specified for debugging purposes.
Definition at line 1392 of file DialectConversion.cpp.
void ConversionPatternRewriterImpl::undoRewrites | ( | unsigned | numRewritesToKeep = 0 , |
StringRef | patternName = "" |
||
) |
Undo the rewrites (motions, splits) one by one in reverse order until "numRewritesToKeep" rewrites remains.
Optionally, the name of the pattern that triggered the rollback can specified for debugging purposes.
Definition at line 1405 of file DialectConversion.cpp.
References rewrite(), and rewrites.
Referenced by mlir::OperationConverter::convertOperations().
bool ConversionPatternRewriterImpl::wasOpReplaced | ( | Operation * | op | ) | const |
Return "true" if the given operation was replaced or erased.
Definition at line 1475 of file DialectConversion.cpp.
References erasedOps, and replacedOps.
Referenced by eraseBlock(), isOpIgnored(), notifyBlockInserted(), and notifyOperationInserted().
const ConversionConfig& mlir::detail::ConversionPatternRewriterImpl::config |
Dialect conversion configuration.
Definition at line 1112 of file DialectConversion.cpp.
Referenced by applyRewrites(), applySignatureConversion(), buildUnresolvedMaterialization(), mlir::OperationConverter::convertOperations(), eraseBlock(), findOrBuildReplacementValue(), lookupOrDefault(), notifyBlockInserted(), notifyMatchFailure(), notifyOperationInserted(), replaceOp(), and replaceUsesOfBlockArgument().
const TypeConverter* mlir::detail::ConversionPatternRewriterImpl::currentTypeConverter = nullptr |
The current type converter, or nullptr if no type converter is currently active.
Definition at line 1105 of file DialectConversion.cpp.
Referenced by mlir::ConversionPattern::matchAndRewrite(), mlir::PDLConversionConfig::notifyRewriteBegin(), mlir::PDLConversionConfig::notifyRewriteEnd(), mlir::registerConversionPDLFunctions(), remapValues(), and replaceOp().
A set of erased blocks.
This set is utilized only if allowPatternRollback
is set to "false".
Definition at line 1123 of file DialectConversion.cpp.
Referenced by eraseBlock(), notifyBlockInserted(), and replaceOp().
A set of erased operations.
This set is utilized only if allowPatternRollback
is set to "false". Conceptually, this set is similar to replacedOps
(which is maintained when the flag is set to "true"). However, erasing from a DenseSet is more efficient than erasing from a SetVector.
Definition at line 1119 of file DialectConversion.cpp.
Referenced by eraseBlock(), notifyOperationInserted(), replaceOp(), and wasOpReplaced().
A set of operations that should no longer be considered for legalization.
E.g., ops that are recursively legal. Ops that were replaced/erased are tracked separately.
Definition at line 1077 of file DialectConversion.cpp.
Referenced by eraseBlock(), getCurrentState(), isOpIgnored(), and replaceOp().
llvm::ScopedPrinter mlir::detail::ConversionPatternRewriterImpl::logger {os} |
A logger used to emit diagnostics during the conversion process.
Definition at line 1147 of file DialectConversion.cpp.
Referenced by notifyBlockInserted(), notifyMatchFailure(), and notifyOperationInserted().
std::string mlir::detail::ConversionPatternRewriterImpl::logPrefix |
Definition at line 1148 of file DialectConversion.cpp.
ConversionValueMapping mlir::detail::ConversionPatternRewriterImpl::mapping |
Definition at line 1066 of file DialectConversion.cpp.
Referenced by buildUnresolvedMaterialization(), findOrBuildReplacementValue(), lookupOrDefault(), replaceOp(), and replaceUsesOfBlockArgument().
IRRewriter mlir::detail::ConversionPatternRewriterImpl::notifyingRewriter |
A rewriter that notifies the listener (if any) about all IR modifications.
This rewriter is utilized only if allowPatternRollback
is set to "false". If the flag is set to "true", the listener is notified with a separate mechanism (e.g., in IRRewrite::commit
).
Definition at line 1129 of file DialectConversion.cpp.
Referenced by eraseBlock(), and replaceOp().
llvm::impl::raw_ldbg_ostream mlir::detail::ConversionPatternRewriterImpl::os |
A raw output stream used to prefix the debug log.
Definition at line 1143 of file DialectConversion.cpp.
A set of blocks that were inserted (newly-created blocks or moved blocks) by the current pattern.
Definition at line 1093 of file DialectConversion.cpp.
Referenced by notifyBlockInserted().
DenseSet<UnrealizedConversionCastOp> mlir::detail::ConversionPatternRewriterImpl::patternMaterializations |
A list of unresolved materializations that were created by the current pattern.
Definition at line 1097 of file DialectConversion.cpp.
Referenced by buildUnresolvedMaterialization(), eraseBlock(), and replaceOp().
A set of operations that were modified by the current pattern.
Definition at line 1089 of file DialectConversion.cpp.
A set of operations that were created by the current pattern.
Definition at line 1086 of file DialectConversion.cpp.
Referenced by notifyOperationInserted().
SmallPtrSet<Operation *, 1> mlir::detail::ConversionPatternRewriterImpl::pendingRootUpdates |
A set of operations that have pending updates.
This tracking isn't strictly necessary, and is thus only active during debug builds for extra verification.
Definition at line 1140 of file DialectConversion.cpp.
DenseMap<Region *, const TypeConverter *> mlir::detail::ConversionPatternRewriterImpl::regionToConverter |
A mapping of regions to type converters that should be used when converting the arguments of blocks within that region.
Definition at line 1109 of file DialectConversion.cpp.
Referenced by convertRegionTypes().
DenseSet<BlockArgument> mlir::detail::ConversionPatternRewriterImpl::replacedArgs |
A set of replaced block arguments.
This set is for debugging purposes only and it is maintained only if allowPatternRollback
is set to "true".
Definition at line 1135 of file DialectConversion.cpp.
Referenced by replaceUsesOfBlockArgument().
A set of operations that were replaced/erased.
Such ops are not erased immediately but only when the dialect conversion succeeds. In the mean time, they should no longer be considered for legalization and any attempt to modify/access them is invalid rewriter API usage.
Definition at line 1083 of file DialectConversion.cpp.
Referenced by eraseBlock(), getCurrentState(), replaceOp(), and wasOpReplaced().
ConversionPatternRewriter& mlir::detail::ConversionPatternRewriterImpl::rewriter |
The rewriter that is used to perform the conversion.
Definition at line 1062 of file DialectConversion.cpp.
Referenced by applyRewrites(), applySignatureConversion(), and mlir::OperationConverter::convertOperations().
SmallVector<std::unique_ptr<IRRewrite> > mlir::detail::ConversionPatternRewriterImpl::rewrites |
Ordered list of block operations (creations, splits, motions).
This vector is maintained only if allowPatternRollback
is set to "true". Otherwise, all IR rewrites are materialized immediately and no bookkeeping is needed.
Definition at line 1072 of file DialectConversion.cpp.
Referenced by applyRewrites(), applySignatureConversion(), getCurrentState(), and undoRewrites().
DenseMap<UnrealizedConversionCastOp, UnresolvedMaterializationInfo> mlir::detail::ConversionPatternRewriterImpl::unresolvedMaterializations |
A mapping for looking up metadata of unresolved materializations.
Definition at line 1101 of file DialectConversion.cpp.
Referenced by buildUnresolvedMaterialization(), mlir::OperationConverter::convertOperations(), eraseBlock(), lookupOrDefault(), and replaceOp().