[Mlir-commits] [mlir] [mlir][MemRefToLLVM] Fix crashes with unconvertable memory spaces (PR #70694)
Krzysztof Drewniak
llvmlistbot at llvm.org
Mon Oct 30 10:34:57 PDT 2023
https://github.com/krzysz00 created https://github.com/llvm/llvm-project/pull/70694
Fixes #70160
The issue is resolved by:
1. Changing the call to address space conversion to use the correct return type, preventing the code from moving past the if and into the crashing optional dereference.
2. Adding handling to the AllocLikeOp rewriter for the case where the underlying buffer allocation fails.
>From 86698137196f3b1457288143faf0a9ecfd29b1ce Mon Sep 17 00:00:00 2001
From: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: Mon, 30 Oct 2023 17:32:08 +0000
Subject: [PATCH] [mlir][MemRefToLLVM] Fix crashes with unconvertable memory
spaces
Fixes #70160
The issue is resolved by:
1. Changing the call to address space conversion to use the correct
return type, preventing the code from moving past the if and into the
crashing optional dereference.
2. Adding handling to the AllocLikeOp rewriter for the case where the
underlying buffer allocation fails.
---
mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp b/mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp
index a2a426e3c293175..dfc47dffe0d2166 100644
--- a/mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp
+++ b/mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp
@@ -183,6 +183,10 @@ LogicalResult AllocLikeOpLLVMLowering::matchAndRewrite(
auto [allocatedPtr, alignedPtr] =
this->allocateBuffer(rewriter, loc, size, op);
+ if (!allocatedPtr || !alignedPtr)
+ return rewriter.notifyMatchFailure(loc,
+ "underlying buffer allocation failed");
+
// Create the MemRef descriptor.
auto memRefDescriptor = this->createMemRefDescriptor(
loc, memRefType, allocatedPtr, alignedPtr, sizes, strides, rewriter);
More information about the Mlir-commits
mailing list