[Mlir-commits] [mlir] [mlir][vector] Skip vector mask elimination for funcs without body (PR #173330)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Dec 22 18:38:31 PST 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir

@llvm/pr-subscribers-mlir-vector

Author: Prathamesh Tagore (meshtag)

<details>
<summary>Changes</summary>

Avoids a crash in test-eliminate-vector-masks pass by bailing out when the target function has no body.

Fixes https://github.com/llvm/llvm-project/issues/132160.



---
Full diff: https://github.com/llvm/llvm-project/pull/173330.diff


2 Files Affected:

- (modified) mlir/lib/Dialect/Vector/Transforms/VectorMaskElimination.cpp (+4) 
- (modified) mlir/test/Dialect/Vector/eliminate-masks.mlir (+6) 


``````````diff
diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorMaskElimination.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorMaskElimination.cpp
index 8a181a429e41c..6f75ce7a04511 100644
--- a/mlir/lib/Dialect/Vector/Transforms/VectorMaskElimination.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/VectorMaskElimination.cpp
@@ -99,6 +99,10 @@ void eliminateVectorMasks(IRRewriter &rewriter, FunctionOpInterface function,
   if (!vscaleRange)
     return;
 
+  // Early exit for functions without a body.
+  if (function.isExternal())
+    return;
+
   OpBuilder::InsertionGuard g(rewriter);
 
   // Build worklist so we can safely insert new ops in
diff --git a/mlir/test/Dialect/Vector/eliminate-masks.mlir b/mlir/test/Dialect/Vector/eliminate-masks.mlir
index 0b78687fb9832..71b4a1f959b39 100644
--- a/mlir/test/Dialect/Vector/eliminate-masks.mlir
+++ b/mlir/test/Dialect/Vector/eliminate-masks.mlir
@@ -163,3 +163,9 @@ func.func @negative_value_bounds_scalable_dim_not_all_true(%tensor: tensor<2x100
   "test.some_use"(%mask) : (vector<3x[4]xi1>) -> ()
   return
 }
+
+// -----
+
+// Test to ensure that functions without a body are skipped.
+// CHECK-LABEL: func.func private @decl_only(tensor<*xi32>)
+func.func private @decl_only(tensor<*xi32>)

``````````

</details>


https://github.com/llvm/llvm-project/pull/173330


More information about the Mlir-commits mailing list