Skip to content

[mlir][Transforms][NFC] Remove SplitBlockRewrite #82777

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

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion mlir/include/mlir/IR/PatternMatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@ class RewriterBase : public OpBuilder {

/// Split the operations starting at "before" (inclusive) out of the given
/// block into a new block, and return it.
virtual Block *splitBlock(Block *block, Block::iterator before);
Block *splitBlock(Block *block, Block::iterator before);

/// 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
Expand Down
3 changes: 0 additions & 3 deletions mlir/include/mlir/Transforms/DialectConversion.h
Original file line number Diff line number Diff line change
Expand Up @@ -741,9 +741,6 @@ class ConversionPatternRewriter final : public PatternRewriter {
/// implemented for dialect conversion.
void eraseBlock(Block *block) override;

/// PatternRewriter hook for splitting a block into two parts.
Block *splitBlock(Block *block, Block::iterator before) override;

/// PatternRewriter hook for inlining the ops of a block into another block.
void inlineBlockBefore(Block *source, Block *dest, Block::iterator before,
ValueRange argValues = std::nullopt) override;
Expand Down
42 changes: 0 additions & 42 deletions mlir/lib/Transforms/Utils/DialectConversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@ class IRRewrite {
EraseBlock,
InlineBlock,
MoveBlock,
SplitBlock,
BlockTypeConversion,
ReplaceBlockArg,
// Operation rewrites
Expand Down Expand Up @@ -400,30 +399,6 @@ class MoveBlockRewrite : public BlockRewrite {
Block *insertBeforeBlock;
};

/// Splitting of a block. This rewrite is immediately reflected in the IR.
class SplitBlockRewrite : public BlockRewrite {
public:
SplitBlockRewrite(ConversionPatternRewriterImpl &rewriterImpl, Block *block,
Block *originalBlock)
: BlockRewrite(Kind::SplitBlock, rewriterImpl, block),
originalBlock(originalBlock) {}

static bool classof(const IRRewrite *rewrite) {
return rewrite->getKind() == Kind::SplitBlock;
}

void rollback() override {
// Merge back the block that was split out.
originalBlock->getOperations().splice(originalBlock->end(),
block->getOperations());
eraseBlock(block);
}

private:
// The original block from which this block was split.
Block *originalBlock;
};

/// This structure contains the information pertaining to an argument that has
/// been converted.
struct ConvertedArgInfo {
Expand Down Expand Up @@ -883,9 +858,6 @@ struct ConversionPatternRewriterImpl : public RewriterBase::Listener {
void notifyBlockInserted(Block *block, Region *previous,
Region::iterator previousIt) override;

/// Notifies that a block was split.
void notifySplitBlock(Block *block, Block *continuation);

/// Notifies that a block is being inlined into another block.
void notifyBlockBeingInlined(Block *block, Block *srcBlock,
Block::iterator before);
Expand Down Expand Up @@ -1522,11 +1494,6 @@ void ConversionPatternRewriterImpl::notifyBlockInserted(
appendRewrite<MoveBlockRewrite>(block, previous, prevBlock);
}

void ConversionPatternRewriterImpl::notifySplitBlock(Block *block,
Block *continuation) {
appendRewrite<SplitBlockRewrite>(continuation, block);
}

void ConversionPatternRewriterImpl::notifyBlockBeingInlined(
Block *block, Block *srcBlock, Block::iterator before) {
appendRewrite<InlineBlockRewrite>(block, srcBlock, before);
Expand Down Expand Up @@ -1665,15 +1632,6 @@ ConversionPatternRewriter::getRemappedValues(ValueRange keys,
results);
}

Block *ConversionPatternRewriter::splitBlock(Block *block,
Block::iterator before) {
assert(!impl->wasOpReplaced(block->getParentOp()) &&
"attempting to split a block within a replaced/erased op");
auto *continuation = block->splitBlock(before);
impl->notifySplitBlock(block, continuation);
return continuation;
}

void ConversionPatternRewriter::inlineBlockBefore(Block *source, Block *dest,
Block::iterator before,
ValueRange argValues) {
Expand Down