<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/test/lib/Conversion/MemRefToLLVM/TestMemRefToLLVMWithTransforms.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>Reapply "Reland "[mlir][Affine] Handle null parent op in getAffineParallelInductionVarOwner" (#142785)"</title>
<updated>2025-06-04T16:05:15+00:00</updated>
<author>
<name>hanhanW</name>
<email>hanhan0912@gmail.com</email>
</author>
<published>2025-06-04T16:05:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d96447b4d31ad76c8a3005bade0e582e8c91b980'/>
<id>d96447b4d31ad76c8a3005bade0e582e8c91b980</id>
<content type='text'>
This reverts commit 178b64e75bb39debc235e8008686b7c4af444013.

The author misread the report of the failure, and thought that it broke
the CI again. Reland the fix.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 178b64e75bb39debc235e8008686b7c4af444013.

The author misread the report of the failure, and thought that it broke
the CI again. Reland the fix.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Reland "[mlir][Affine] Handle null parent op in getAffineParallelInductionVarOwner" (#142785)"</title>
<updated>2025-06-04T15:59:54+00:00</updated>
<author>
<name>hanhanW</name>
<email>hanhan0912@gmail.com</email>
</author>
<published>2025-06-04T15:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=178b64e75bb39debc235e8008686b7c4af444013'/>
<id>178b64e75bb39debc235e8008686b7c4af444013</id>
<content type='text'>
This reverts commit 07a534160a7c500cb71425344cca223cadd9b938.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 07a534160a7c500cb71425344cca223cadd9b938.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[mlir][Affine] Handle null parent op in getAffineParallelInductionVarOwner" (#142785)</title>
<updated>2025-06-04T15:32:09+00:00</updated>
<author>
<name>Han-Chung Wang</name>
<email>hanhan0912@gmail.com</email>
</author>
<published>2025-06-04T15:32:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=07a534160a7c500cb71425344cca223cadd9b938'/>
<id>07a534160a7c500cb71425344cca223cadd9b938</id>
<content type='text'>
Below is the original commit description. Furthermore, it applies a
[fix](https://github.com/llvm/llvm-project/commit/33a26b9ca2f7b690f545fa309e43b38068699db5)
for CMakeList.txt

The issue occurs during a downstream pass which does dialect conversion,
where both
[`FuncOpConversion`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp#L480)
and
[`SubviewFolder`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp#L187)
are run together. The original starting IR is:
```mlir
module {
  func.func @foo(%arg0: memref&lt;100x100xf32&gt;, %arg1: index, %arg2: index, %arg3: index, %arg4: index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt; {
    %subview = memref.subview %arg0[%arg1, %arg2] [%arg3, %arg4] [1, 1] : memref&lt;100x100xf32&gt; to memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    return %subview : memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
  }
}
```


After `FuncOpConversion` runs, the IR looks like:
```mlir
"builtin.module"() ({
  "llvm.func"() &lt;{CConv = #llvm.cconv&lt;ccc&gt;, function_type = !llvm.func&lt;struct&lt;(ptr, ptr, i64, array&lt;2 x i64&gt;, array&lt;2 x i64&gt;)&gt; (ptr, ptr, i64, i64, i64, i64, i64, i64, i64, i64, i64)&gt;, linkage = #llvm.linkage&lt;external&gt;, sym_name = "foo", visibility_ = 0 : i64}&gt; ({
  ^bb0(%arg0: !llvm.ptr, %arg1: !llvm.ptr, %arg2: i64, %arg3: i64, %arg4: i64, %arg5: i64, %arg6: i64, %arg7: i64, %arg8: i64, %arg9: i64, %arg10: i64):
    %0 = "memref.subview"(&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;) &lt;{operandSegmentSizes = array&lt;i32: 1, 2, 2, 0&gt;, static_offsets = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_sizes = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_strides = array&lt;i64: 1, 1&gt;}&gt; : (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    "func.return"(%0) : (memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;) -&gt; ()
  }) : () -&gt; ()
  "func.func"() &lt;{function_type = (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;, sym_name = "foo"}&gt; ({
  }) : () -&gt; ()
}) {llvm.data_layout = "", llvm.target_triple = ""} : () -&gt; ()
```
The `&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;`'s here are block arguments of a separate
unlinked block, which is disconnected from the rest of the IR (so not
only is the IR verifier-invalid, it can't even be parsed). This IR is
created by signature conversion in the dialect conversion infra.

Now `SubviewFolder` is applied, and the utility function here is called
on one of these disconnected block arguments, causing a crash.

The TestMemRefToLLVMWithTransforms pass is introduced to exercise the
bug, and it can be reused by other contributors in the future.

Co-authored-by: Rahul Kayaith &lt;rkayaith@gmail.com&gt;

---------

Signed-off-by: hanhanW &lt;hanhan0912@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Below is the original commit description. Furthermore, it applies a
[fix](https://github.com/llvm/llvm-project/commit/33a26b9ca2f7b690f545fa309e43b38068699db5)
for CMakeList.txt

The issue occurs during a downstream pass which does dialect conversion,
where both
[`FuncOpConversion`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp#L480)
and
[`SubviewFolder`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp#L187)
are run together. The original starting IR is:
```mlir
module {
  func.func @foo(%arg0: memref&lt;100x100xf32&gt;, %arg1: index, %arg2: index, %arg3: index, %arg4: index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt; {
    %subview = memref.subview %arg0[%arg1, %arg2] [%arg3, %arg4] [1, 1] : memref&lt;100x100xf32&gt; to memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    return %subview : memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
  }
}
```


After `FuncOpConversion` runs, the IR looks like:
```mlir
"builtin.module"() ({
  "llvm.func"() &lt;{CConv = #llvm.cconv&lt;ccc&gt;, function_type = !llvm.func&lt;struct&lt;(ptr, ptr, i64, array&lt;2 x i64&gt;, array&lt;2 x i64&gt;)&gt; (ptr, ptr, i64, i64, i64, i64, i64, i64, i64, i64, i64)&gt;, linkage = #llvm.linkage&lt;external&gt;, sym_name = "foo", visibility_ = 0 : i64}&gt; ({
  ^bb0(%arg0: !llvm.ptr, %arg1: !llvm.ptr, %arg2: i64, %arg3: i64, %arg4: i64, %arg5: i64, %arg6: i64, %arg7: i64, %arg8: i64, %arg9: i64, %arg10: i64):
    %0 = "memref.subview"(&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;) &lt;{operandSegmentSizes = array&lt;i32: 1, 2, 2, 0&gt;, static_offsets = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_sizes = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_strides = array&lt;i64: 1, 1&gt;}&gt; : (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    "func.return"(%0) : (memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;) -&gt; ()
  }) : () -&gt; ()
  "func.func"() &lt;{function_type = (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;, sym_name = "foo"}&gt; ({
  }) : () -&gt; ()
}) {llvm.data_layout = "", llvm.target_triple = ""} : () -&gt; ()
```
The `&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;`'s here are block arguments of a separate
unlinked block, which is disconnected from the rest of the IR (so not
only is the IR verifier-invalid, it can't even be parsed). This IR is
created by signature conversion in the dialect conversion infra.

Now `SubviewFolder` is applied, and the utility function here is called
on one of these disconnected block arguments, causing a crash.

The TestMemRefToLLVMWithTransforms pass is introduced to exercise the
bug, and it can be reused by other contributors in the future.

Co-authored-by: Rahul Kayaith &lt;rkayaith@gmail.com&gt;

---------

Signed-off-by: hanhanW &lt;hanhan0912@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[mlir][Affine] Handle null parent op in getAffineParallelInductionVarOwner (#142025)"</title>
<updated>2025-06-04T14:19:59+00:00</updated>
<author>
<name>Krzysztof Parzyszek</name>
<email>Krzysztof.Parzyszek@amd.com</email>
</author>
<published>2025-06-04T14:18:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=15dff71cac9fb85f3332fb5e5809d3d8665ed176'/>
<id>15dff71cac9fb85f3332fb5e5809d3d8665ed176</id>
<content type='text'>
This reverts commit c3746ff3229c57110f7895ff5b93e520cead0d1b.

This breaks build with BUILD_SHARED_LIBS=ON.

```
/usr/bin/ld: CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o: in function `(anonymous namespace)::TestMemRefToLLVMWithTransforms::runOnOperation()':
TestMemRefToLLVMWithTransforms.cpp:(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEv+0x68): undefined reference to `mlir::LowerToLLVMOptions::LowerToLLVMOptions(mlir::MLIRContext*)'
/usr/bin/ld: TestMemRefToLLVMWithTransforms.cpp:[ 88%] Built target CodeGenTests
(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEvmake[2]: Leaving directory '/work2/kparzysz/git/llvm.org/b/x86'
+0x80): undefined reference to `mlir::LLVMTypeConverter::LLVMTypeConverter(mlir::MLIRContext*, mlir::LowerToLLVMOptions const&amp;, mlir::DataLayoutAnalysis const*)'
/usr/bin/ld: TestMemRefToLLVMWithTransforms.cpp:(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEv+0x143): undefined reference to `mlir::populateFuncToLLVMConversionPatterns(mlir::LLVMTypeConverter const&amp;, mlir::RewritePatternSet&amp;, mlir::SymbolTable const*)'
/usr/bin/ld: TestMemRefToLLVMWithTransforms.cpp:(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEv+0x174): undefined reference to `mlir::LLVMConversionTarget::LLVMConversionTarget(mlir::MLIRContext&amp;)'
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit c3746ff3229c57110f7895ff5b93e520cead0d1b.

This breaks build with BUILD_SHARED_LIBS=ON.

```
/usr/bin/ld: CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o: in function `(anonymous namespace)::TestMemRefToLLVMWithTransforms::runOnOperation()':
TestMemRefToLLVMWithTransforms.cpp:(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEv+0x68): undefined reference to `mlir::LowerToLLVMOptions::LowerToLLVMOptions(mlir::MLIRContext*)'
/usr/bin/ld: TestMemRefToLLVMWithTransforms.cpp:[ 88%] Built target CodeGenTests
(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEvmake[2]: Leaving directory '/work2/kparzysz/git/llvm.org/b/x86'
+0x80): undefined reference to `mlir::LLVMTypeConverter::LLVMTypeConverter(mlir::MLIRContext*, mlir::LowerToLLVMOptions const&amp;, mlir::DataLayoutAnalysis const*)'
/usr/bin/ld: TestMemRefToLLVMWithTransforms.cpp:(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEv+0x143): undefined reference to `mlir::populateFuncToLLVMConversionPatterns(mlir::LLVMTypeConverter const&amp;, mlir::RewritePatternSet&amp;, mlir::SymbolTable const*)'
/usr/bin/ld: TestMemRefToLLVMWithTransforms.cpp:(.text._ZN12_GLOBAL__N_130TestMemRefToLLVMWithTransforms14runOnOperationEv+0x174): undefined reference to `mlir::LLVMConversionTarget::LLVMConversionTarget(mlir::MLIRContext&amp;)'
```
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][Affine] Handle null parent op in getAffineParallelInductionVarOwner (#142025)</title>
<updated>2025-06-04T13:51:39+00:00</updated>
<author>
<name>Han-Chung Wang</name>
<email>hanhan0912@gmail.com</email>
</author>
<published>2025-06-04T13:51:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c3746ff3229c57110f7895ff5b93e520cead0d1b'/>
<id>c3746ff3229c57110f7895ff5b93e520cead0d1b</id>
<content type='text'>
The issue occurs during a downstream pass which does dialect conversion,
where both
[`FuncOpConversion`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp#L480)
and
[`SubviewFolder`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp#L187)
are run together. The original starting IR is:
```mlir
module {
  func.func @foo(%arg0: memref&lt;100x100xf32&gt;, %arg1: index, %arg2: index, %arg3: index, %arg4: index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt; {
    %subview = memref.subview %arg0[%arg1, %arg2] [%arg3, %arg4] [1, 1] : memref&lt;100x100xf32&gt; to memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    return %subview : memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
  }
}
```


After `FuncOpConversion` runs, the IR looks like:
```mlir
"builtin.module"() ({
  "llvm.func"() &lt;{CConv = #llvm.cconv&lt;ccc&gt;, function_type = !llvm.func&lt;struct&lt;(ptr, ptr, i64, array&lt;2 x i64&gt;, array&lt;2 x i64&gt;)&gt; (ptr, ptr, i64, i64, i64, i64, i64, i64, i64, i64, i64)&gt;, linkage = #llvm.linkage&lt;external&gt;, sym_name = "foo", visibility_ = 0 : i64}&gt; ({
  ^bb0(%arg0: !llvm.ptr, %arg1: !llvm.ptr, %arg2: i64, %arg3: i64, %arg4: i64, %arg5: i64, %arg6: i64, %arg7: i64, %arg8: i64, %arg9: i64, %arg10: i64):
    %0 = "memref.subview"(&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;) &lt;{operandSegmentSizes = array&lt;i32: 1, 2, 2, 0&gt;, static_offsets = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_sizes = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_strides = array&lt;i64: 1, 1&gt;}&gt; : (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    "func.return"(%0) : (memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;) -&gt; ()
  }) : () -&gt; ()
  "func.func"() &lt;{function_type = (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;, sym_name = "foo"}&gt; ({
  }) : () -&gt; ()
}) {llvm.data_layout = "", llvm.target_triple = ""} : () -&gt; ()
```
The `&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;`'s here are block arguments of a separate
unlinked block, which is disconnected from the rest of the IR (so not
only is the IR verifier-invalid, it can't even be parsed). This IR is
created by signature conversion in the dialect conversion infra.

Now `SubviewFolder` is applied, and the utility function here is called
on one of these disconnected block arguments, causing a crash.

The TestMemRefToLLVMWithTransforms pass is introduced to exercise the
bug, and it can be reused by other contributors in the future.

---------

Signed-off-by: hanhanW &lt;hanhan0912@gmail.com&gt;

Co-authored-by: Rahul Kayaith &lt;rkayaith@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The issue occurs during a downstream pass which does dialect conversion,
where both
[`FuncOpConversion`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp#L480)
and
[`SubviewFolder`](https://github.com/llvm/llvm-project/blob/cde67b6663f994fcb4ded28fd79b23a13d347c4a/mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp#L187)
are run together. The original starting IR is:
```mlir
module {
  func.func @foo(%arg0: memref&lt;100x100xf32&gt;, %arg1: index, %arg2: index, %arg3: index, %arg4: index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt; {
    %subview = memref.subview %arg0[%arg1, %arg2] [%arg3, %arg4] [1, 1] : memref&lt;100x100xf32&gt; to memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    return %subview : memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
  }
}
```


After `FuncOpConversion` runs, the IR looks like:
```mlir
"builtin.module"() ({
  "llvm.func"() &lt;{CConv = #llvm.cconv&lt;ccc&gt;, function_type = !llvm.func&lt;struct&lt;(ptr, ptr, i64, array&lt;2 x i64&gt;, array&lt;2 x i64&gt;)&gt; (ptr, ptr, i64, i64, i64, i64, i64, i64, i64, i64, i64)&gt;, linkage = #llvm.linkage&lt;external&gt;, sym_name = "foo", visibility_ = 0 : i64}&gt; ({
  ^bb0(%arg0: !llvm.ptr, %arg1: !llvm.ptr, %arg2: i64, %arg3: i64, %arg4: i64, %arg5: i64, %arg6: i64, %arg7: i64, %arg8: i64, %arg9: i64, %arg10: i64):
    %0 = "memref.subview"(&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;, &lt;&lt;UNKNOWN SSA VALUE&gt;&gt;) &lt;{operandSegmentSizes = array&lt;i32: 1, 2, 2, 0&gt;, static_offsets = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_sizes = array&lt;i64: -9223372036854775808, -9223372036854775808&gt;, static_strides = array&lt;i64: 1, 1&gt;}&gt; : (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;
    "func.return"(%0) : (memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;) -&gt; ()
  }) : () -&gt; ()
  "func.func"() &lt;{function_type = (memref&lt;100x100xf32&gt;, index, index, index, index) -&gt; memref&lt;?x?xf32, strided&lt;[100, 1], offset: ?&gt;&gt;, sym_name = "foo"}&gt; ({
  }) : () -&gt; ()
}) {llvm.data_layout = "", llvm.target_triple = ""} : () -&gt; ()
```
The `&lt;&lt;UNKNOWN SSA VALUE&gt;&gt;`'s here are block arguments of a separate
unlinked block, which is disconnected from the rest of the IR (so not
only is the IR verifier-invalid, it can't even be parsed). This IR is
created by signature conversion in the dialect conversion infra.

Now `SubviewFolder` is applied, and the utility function here is called
on one of these disconnected block arguments, causing a crash.

The TestMemRefToLLVMWithTransforms pass is introduced to exercise the
bug, and it can be reused by other contributors in the future.

---------

Signed-off-by: hanhanW &lt;hanhan0912@gmail.com&gt;

Co-authored-by: Rahul Kayaith &lt;rkayaith@gmail.com&gt;</pre>
</div>
</content>
</entry>
</feed>
