Skip to content

Commit e63d543

Browse files
[mlir][Transforms] Dialect conversion: Fix -debug crash (#125660)
Fix a crash in `ConversionPatternRewriter::replaceUsesOfBlockArgument` when running with `-debug`. The block that owns the block argument can be a detached block. In that case, do not attempt to print the name of the owner op.
1 parent 83ff9d4 commit e63d543

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

mlir/lib/Transforms/Utils/DialectConversion.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1708,10 +1708,13 @@ FailureOr<Block *> ConversionPatternRewriter::convertRegionTypes(
17081708
void ConversionPatternRewriter::replaceUsesOfBlockArgument(BlockArgument from,
17091709
Value to) {
17101710
LLVM_DEBUG({
1711-
Operation *parentOp = from.getOwner()->getParentOp();
1712-
impl->logger.startLine() << "** Replace Argument : '" << from
1713-
<< "'(in region of '" << parentOp->getName()
1714-
<< "'(" << from.getOwner()->getParentOp() << ")\n";
1711+
impl->logger.startLine() << "** Replace Argument : '" << from << "'";
1712+
if (Operation *parentOp = from.getOwner()->getParentOp()) {
1713+
impl->logger.getOStream() << " (in region of '" << parentOp->getName()
1714+
<< "' (" << parentOp << ")\n";
1715+
} else {
1716+
impl->logger.getOStream() << " (unlinked block)\n";
1717+
}
17151718
});
17161719
impl->appendRewrite<ReplaceBlockArgRewrite>(from.getOwner(), from,
17171720
impl->currentTypeConverter);

0 commit comments

Comments
 (0)