[Mlir-commits] [mlir] [mlir] fix affine-loop-fusion has a crash (#76281) (PR #76351)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sun Dec 24 19:49:14 PST 2023


https://github.com/lipracer created https://github.com/llvm/llvm-project/pull/76351

None

>From 8417aacc87941206d644782aea16cff7ddcec7bf Mon Sep 17 00:00:00 2001
From: lipracer <lipracer at gmail.com>
Date: Mon, 25 Dec 2023 11:47:07 +0800
Subject: [PATCH] [mlir] fix affine-loop-fusion has a crash (#76281)

---
 mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp b/mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp
index 66d921b4889f59..2140ff66b1a676 100644
--- a/mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp
+++ b/mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp
@@ -205,7 +205,8 @@ static bool isEscapingMemref(Value memref, Block *block) {
   // (e.g., call ops, alias creating ops, etc.).
   return llvm::any_of(memref.getUsers(), [&](Operation *user) {
     // Ignore users outside of `block`.
-    if (block->getParent()->findAncestorOpInRegion(*user)->getBlock() != block)
+    auto ancestorOp = block->getParent()->findAncestorOpInRegion(*user);
+    if (!ancestorOp || ancestorOp->getBlock() != block)
       return false;
     return !isa<AffineMapAccessInterface>(*user);
   });



More information about the Mlir-commits mailing list