[Mlir-commits] [mlir] [mlir][Transforms] Dialect conversion: Fix `-debug` crash (PR #125660)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Feb 4 01:56:52 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-core
Author: Matthias Springer (matthias-springer)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/125660.diff
1 Files Affected:
- (modified) mlir/lib/Transforms/Utils/DialectConversion.cpp (+7-4)
``````````diff
diff --git a/mlir/lib/Transforms/Utils/DialectConversion.cpp b/mlir/lib/Transforms/Utils/DialectConversion.cpp
index 403321d40d53c9..7bfcd192c9aa9c 100644
--- a/mlir/lib/Transforms/Utils/DialectConversion.cpp
+++ b/mlir/lib/Transforms/Utils/DialectConversion.cpp
@@ -1708,10 +1708,13 @@ FailureOr<Block *> ConversionPatternRewriter::convertRegionTypes(
void ConversionPatternRewriter::replaceUsesOfBlockArgument(BlockArgument from,
Value to) {
LLVM_DEBUG({
- Operation *parentOp = from.getOwner()->getParentOp();
- impl->logger.startLine() << "** Replace Argument : '" << from
- << "'(in region of '" << parentOp->getName()
- << "'(" << from.getOwner()->getParentOp() << ")\n";
+ impl->logger.startLine() << "** Replace Argument : '" << from << "'";
+ if (Operation *parentOp = from.getOwner()->getParentOp()) {
+ impl->logger.getOStream() << " (in region of '" << parentOp->getName()
+ << "' (" << parentOp << ")\n";
+ } else {
+ impl->logger.getOStream() << " (unlinked block)\n";
+ }
});
impl->appendRewrite<ReplaceBlockArgRewrite>(from.getOwner(), from,
impl->currentTypeConverter);
``````````
</details>
https://github.com/llvm/llvm-project/pull/125660
More information about the Mlir-commits
mailing list