-
Notifications
You must be signed in to change notification settings - Fork 14.2k
[mlir][Transforms][NFC] Dialect conversion: Rename internal functions #145018
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
matthias-springer
wants to merge
1
commit into
main
Choose a base branch
from
users/matthias-springer/rename_impl
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+34
−27
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@llvm/pr-subscribers-mlir-core @llvm/pr-subscribers-mlir Author: Matthias Springer (matthias-springer) ChangesRename a few internal functions: drop the Full diff: https://github.com/llvm/llvm-project/pull/145018.diff 1 Files Affected:
diff --git a/mlir/lib/Transforms/Utils/DialectConversion.cpp b/mlir/lib/Transforms/Utils/DialectConversion.cpp
index 3b669f51a615f..ff48647f43305 100644
--- a/mlir/lib/Transforms/Utils/DialectConversion.cpp
+++ b/mlir/lib/Transforms/Utils/DialectConversion.cpp
@@ -896,7 +896,7 @@ struct ConversionPatternRewriterImpl : public RewriterBase::Listener {
bool wasOpReplaced(Operation *op) const;
//===--------------------------------------------------------------------===//
- // Type Conversion
+ // IR Rewrites / Type Conversion
//===--------------------------------------------------------------------===//
/// Convert the types of block arguments within the given region.
@@ -916,6 +916,22 @@ struct ConversionPatternRewriterImpl : public RewriterBase::Listener {
const TypeConverter *converter,
TypeConverter::SignatureConversion &signatureConversion);
+ /// 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.
+ void replaceOp(Operation *op, SmallVector<SmallVector<Value>> &&newValues);
+
+ /// Erase the given block and its contents.
+ void eraseBlock(Block *block);
+
+ /// Inline the source block into the destination block before the given
+ /// iterator.
+ void inlineBlockBefore(Block *source, Block *dest, Block::iterator before);
+
//===--------------------------------------------------------------------===//
// Materializations
//===--------------------------------------------------------------------===//
@@ -952,21 +968,10 @@ struct ConversionPatternRewriterImpl : public RewriterBase::Listener {
void notifyOperationInserted(Operation *op,
OpBuilder::InsertPoint previous) override;
- /// Notifies that an op is about to be replaced with the given values.
- void notifyOpReplaced(Operation *op,
- SmallVector<SmallVector<Value>> &&newValues);
-
- /// Notifies that a block is about to be erased.
- void notifyBlockIsBeingErased(Block *block);
-
/// Notifies that a block was inserted.
void notifyBlockInserted(Block *block, Region *previous,
Region::iterator previousIt) override;
- /// Notifies that a block is being inlined into another block.
- void notifyBlockBeingInlined(Block *block, Block *srcBlock,
- Block::iterator before);
-
/// Notifies that a pattern match failed for the given reason.
void
notifyMatchFailure(Location loc,
@@ -1548,7 +1553,7 @@ void ConversionPatternRewriterImpl::notifyOperationInserted(
appendRewrite<MoveOperationRewrite>(op, previous.getBlock(), prevOp);
}
-void ConversionPatternRewriterImpl::notifyOpReplaced(
+void ConversionPatternRewriterImpl::replaceOp(
Operation *op, SmallVector<SmallVector<Value>> &&newValues) {
assert(newValues.size() == op->getNumResults());
assert(!ignoredOps.contains(op) && "operation was already replaced");
@@ -1599,8 +1604,14 @@ void ConversionPatternRewriterImpl::notifyOpReplaced(
op->walk([&](Operation *op) { replacedOps.insert(op); });
}
-void ConversionPatternRewriterImpl::notifyBlockIsBeingErased(Block *block) {
+void ConversionPatternRewriterImpl::eraseBlock(Block *block) {
appendRewrite<EraseBlockRewrite>(block);
+
+ // Unlink the block from its parent region. The block is kept in the rewrite
+ // object and will be actually destroyed when rewrites are applied. This
+ // allows us to keep the operations in the block live and undo the removal by
+ // re-inserting the block.
+ block->getParent()->getBlocks().remove(block);
}
void ConversionPatternRewriterImpl::notifyBlockInserted(
@@ -1628,9 +1639,10 @@ void ConversionPatternRewriterImpl::notifyBlockInserted(
appendRewrite<MoveBlockRewrite>(block, previous, prevBlock);
}
-void ConversionPatternRewriterImpl::notifyBlockBeingInlined(
- Block *block, Block *srcBlock, Block::iterator before) {
- appendRewrite<InlineBlockRewrite>(block, srcBlock, before);
+void ConversionPatternRewriterImpl::inlineBlockBefore(Block *source,
+ Block *dest,
+ Block::iterator before) {
+ appendRewrite<InlineBlockRewrite>(dest, source, before);
}
void ConversionPatternRewriterImpl::notifyMatchFailure(
@@ -1673,7 +1685,7 @@ void ConversionPatternRewriter::replaceOp(Operation *op, ValueRange newValues) {
llvm::map_to_vector(newValues, [](Value v) -> SmallVector<Value> {
return v ? SmallVector<Value>{v} : SmallVector<Value>();
});
- impl->notifyOpReplaced(op, std::move(newVals));
+ impl->replaceOp(op, std::move(newVals));
}
void ConversionPatternRewriter::replaceOpWithMultiple(
@@ -1684,7 +1696,7 @@ void ConversionPatternRewriter::replaceOpWithMultiple(
impl->logger.startLine()
<< "** Replace : '" << op->getName() << "'(" << op << ")\n";
});
- impl->notifyOpReplaced(op, std::move(newValues));
+ impl->replaceOp(op, std::move(newValues));
}
void ConversionPatternRewriter::eraseOp(Operation *op) {
@@ -1693,7 +1705,7 @@ void ConversionPatternRewriter::eraseOp(Operation *op) {
<< "** Erase : '" << op->getName() << "'(" << op << ")\n";
});
SmallVector<SmallVector<Value>> nullRepls(op->getNumResults(), {});
- impl->notifyOpReplaced(op, std::move(nullRepls));
+ impl->replaceOp(op, std::move(nullRepls));
}
void ConversionPatternRewriter::eraseBlock(Block *block) {
@@ -1704,12 +1716,7 @@ void ConversionPatternRewriter::eraseBlock(Block *block) {
for (Operation &op : *block)
eraseOp(&op);
- // Unlink the block from its parent region. The block is kept in the rewrite
- // object and will be actually destroyed when rewrites are applied. This
- // allows us to keep the operations in the block live and undo the removal by
- // re-inserting the block.
- impl->notifyBlockIsBeingErased(block);
- block->getParent()->getBlocks().remove(block);
+ impl->eraseBlock(block);
}
Block *ConversionPatternRewriter::applySignatureConversion(
@@ -1797,7 +1804,7 @@ void ConversionPatternRewriter::inlineBlockBefore(Block *source, Block *dest,
bool fastPath = !impl->config.listener;
if (fastPath)
- impl->notifyBlockBeingInlined(dest, source, before);
+ impl->inlineBlockBefore(source, dest, before);
// Replace all uses of block arguments.
for (auto it : llvm::zip(source->getArguments(), argValues))
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rename a few internal functions: drop the
notify
prefix, which incorrectly suggests that the function is a listener callback function.