[Mlir-commits] [mlir] [mlir][memref] Fix rollback in test case during `convert-to-llvm` (PR #135958)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Apr 16 06:08:41 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Matthias Springer (matthias-springer)
<details>
<summary>Changes</summary>
This commit is in preparation of the One-Shot Dialect Conversion refactoring, which removes the rollback from the dialect conversion framework.
`GenericAtomicRMWOpLowering` triggered a rollback in two test cases. The lowering pattern adds additional basic blocks to the enclosing operation, which used to be a `func.func`. Adding a basic block triggers legalization of the op that owns the basic block. This fails when running `--convert-to-llvm="filter-dialects=memref"` because there are no lowering patterns for the `func` dialect and only `llvm` ops are considered "legal" by the `convert-to-llvm` pass, causing a rollback of the entire `GenericAtomicRMWOpLowering` pattern.
---
Full diff: https://github.com/llvm/llvm-project/pull/135958.diff
1 Files Affected:
- (modified) mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir (+5-3)
``````````diff
diff --git a/mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir b/mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir
index 12e93c96f743d..70da5a94d1615 100644
--- a/mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir
+++ b/mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir
@@ -413,7 +413,9 @@ func.func @atomic_rmw_with_offset(%I : memref<10xi32, strided<[1], offset: 5>>,
// -----
// CHECK-LABEL: func @generic_atomic_rmw
-func.func @generic_atomic_rmw(%I : memref<10xi32>, %i : index) {
+llvm.func @generic_atomic_rmw() {
+ %I = "test.foo"() : () -> (memref<10xi32>)
+ %i = "test.foo"() : () -> (index)
%x = memref.generic_atomic_rmw %I[%i] : memref<10xi32> {
^bb0(%old_value : i32):
memref.atomic_yield %old_value : i32
@@ -432,7 +434,7 @@ func.func @generic_atomic_rmw(%I : memref<10xi32>, %i : index) {
// -----
// CHECK-LABEL: func @generic_atomic_rmw_in_alloca_scope
-func.func @generic_atomic_rmw_in_alloca_scope(){
+llvm.func @generic_atomic_rmw_in_alloca_scope() {
%c1 = arith.constant 1 : index
%alloc = memref.alloc() : memref<2x3xi32>
memref.alloca_scope {
@@ -441,7 +443,7 @@ func.func @generic_atomic_rmw_in_alloca_scope(){
memref.atomic_yield %arg0 : i32
}
}
- return
+ llvm.return
}
// CHECK: %[[STACK_SAVE:.*]] = llvm.intr.stacksave : !llvm.ptr
// CHECK-NEXT: llvm.br ^bb1
``````````
</details>
https://github.com/llvm/llvm-project/pull/135958
More information about the Mlir-commits
mailing list