<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/60022>60022</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [mlir] SliceAnalysis crashes with assertion failure "(parentOp->getNumRegions() == 1 && parentOp->getRegion(0).getBlocks().size() == 1)"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Colloportus0
      </td>
    </tr>
</table>

<pre>
    
MLIR built at commit https://github.com/llvm/llvm-project/commit/a5ddd920
Reproduced with: 
`mlir-opt --slice-analysis-test temp.mlir`

temp.mlir:
``` 
#map = affine_map<() -> ()> 
func.func @func(%arg0: tensor<i1>, %arg1: tensor<i8>) {
  linalg.generic {indexing_maps = [#map, #map], iterator_types = []} ins(%arg0 : tensor<i1>) outs(%arg1 : tensor<i8>) {
 ^bb0(%in: i1, %out: i8): 
    linalg.yield %out : i8
  } -> tensor<i8> 
  cf.br ^bb1 
^bb1:  
  return 


```
 
trace:
```console  
Assertion failed: (parentOp->getNumRegions() == 1 && parentOp->getRegion(0).getBlocks().size() == 1), function getBackwardSliceImpl, file SliceAnalysis.cpp, line 104.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: mlir-opt --slice-analysis-test temp.mlir
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  mlir-opt 0x00000001048a85bc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x00000001048a7624 llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x00000001048a8c54 SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001a56894c4 _sigtramp + 56
4  libsystem_pthread.dylib 0x00000001a5671ee0 pthread_kill + 288
5  libsystem_c.dylib 0x00000001a55ac340 abort + 168
6  libsystem_c.dylib 0x00000001a55ab754 err + 0
7  mlir-opt                 0x00000001061d2268 getBackwardSliceImpl(mlir::Operation*, llvm::SetVector<mlir::Operation*, std::__1::vector<mlir::Operation*, std::__1::allocator<mlir::Operation*>>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>>*, llvm::function_ref<bool (mlir::Operation*)>) (.cold.3) + 0
8 mlir-opt                 0x0000000105a9e174 getBackwardSliceImpl(mlir::Operation*, llvm::SetVector<mlir::Operation*, std::__1::vector<mlir::Operation*, std::__1::allocator<mlir::Operation*>>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>>*, llvm::function_ref<bool (mlir::Operation*)>) + 524
9  mlir-opt 0x0000000105a9e01c getBackwardSliceImpl(mlir::Operation*, llvm::SetVector<mlir::Operation*, std::__1::vector<mlir::Operation*, std::__1::allocator<mlir::Operation*>>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>>*, llvm::function_ref<bool (mlir::Operation*)>) + 180
10 mlir-opt                 0x0000000105a9df4c mlir::getBackwardSlice(mlir::Operation*, llvm::SetVector<mlir::Operation*, std::__1::vector<mlir::Operation*, std::__1::allocator<mlir::Operation*>>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>>*, llvm::function_ref<bool (mlir::Operation*)>) + 28
11 mlir-opt 0x0000000105a46404 mlir::WalkResult llvm::function_ref<mlir::WalkResult (mlir::Operation*)>::callback_fn<(anonymous namespace)::SliceAnalysisTestPass::runOnOperation()::$_0>(long, mlir::Operation*) + 1020
12 mlir-opt                 0x0000000105bd73f0 mlir::detail::walk(mlir::Operation*, llvm::function_ref<mlir::WalkResult (mlir::Operation*)>, mlir::WalkOrder) + 160
13 mlir-opt 0x0000000105a45ef4 (anonymous namespace)::SliceAnalysisTestPass::runOnOperation() + 208
14 mlir-opt 0x0000000105ab34dc mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 420
15 mlir-opt 0x0000000105ab3a0c mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
16 mlir-opt                 0x0000000105ab5388 mlir::PassManager::run(mlir::Operation*) + 1148
17 mlir-opt 0x0000000105aae840 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 504
18 mlir-opt                 0x0000000105aae410 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) + 704
19 mlir-opt                 0x0000000105b1902c mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) + 656
20 mlir-opt 0x0000000105aac838 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) + 216
21 mlir-opt                 0x0000000105aacd2c mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
22 mlir-opt 0x000000010474b0a0 main + 108
23 dyld 0x00000001091f1088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsGVtP4zr615gXi8pxLk0eeCgUdJBgQTA6q92Xyom_pl4cO2s7zOn59Ss7SW-0Mz2jkQ5aDUKNW3_3u2NmragVwBVKr1E6v2CdW2lzdaOl1K02rrPkotR8fYXIHJHZ48P9Cy47IR1mDle6aYTDK-dai-IZoneI3tXCrbpyUukG0Tsp38fHZWv0f6ByiN71eIjesZRzXlDSE3-B1mjeVcDxV-FWKJ7hfgNlpJHCXOrW4ctLK0UFl0wxubbCXjqwDjto2omHQdlArP_c_h7PNrT6_5E2jRvWYhTPMVsuhYJFw1oU3yCaI1rgSxTf4n4dVgFn2alq4j8wSoh_BoCUmZp4oR0oqw2Kb0SE4ltEb3C_Ge1v5mGzwGh63ZPFWArFZD2pQYERld8RisMfQtVeKhuk9I4KMveEwyqd-y_CgWFOm4Vbt7AFTudoOsdC2a2U-JiYBdad2wJF-HviovS2LEmPIJSHFtGgre5c-N7bbfQjxhsV1wIkHyDxADrAeGmD2fd5b2hUy0lpeubR6MTwxZPZQBlwnVHj_nSOd8NiEwSjJn2wGFbBx0CptLJawkh6Zi0YJ7TCSyYk8KAezVtmQLmn1kteg_tH17xALfRg9cJ7wzskwohmiGb4AL4HRjQniBaTGty11NXbgDyx4k84oOMNS2-wj74gjEdh1dtXZvirT5D7ppUBQEjA4ZfZkDGTqg2xI4UCHJFk0uv1_HA7e73Ftit9TjNcdjU24GsAdvqv57iwtgOL6B1mimOhKtlxwG4FuDLMrnDJqrdg8IH9q2PVG-Zd0248QCaIFM9G14Y1mJm6a0A5LwQ-uxockA51xUecXTelllixxicKzUHZzgBe6w6v2DvgoEwPJP4Eg4XyewY_z778hrXBFlzQBdS7MFp5wfA7Mxhl5OHh98fF678er58e7v99-7LwKL7cOI1bLVSwpi9-xVZPvFWI_EH6v4gkOcvTsgqyeNh4Zte2XzwboVxQ60uIWZpvgQz7utDWGWBNCLUbLJQLkUOvcZr1LKMdlod_-yJMM5ocE-GlU6-iVkz-xhSXYDZxTq9xFNGeDT2tWZUmeI8AovmOoHGS9CRiXzJKu7YOmkUrmVtq00z4WopyhyRLs7xIqgQvrKidYU27p26yR8StDDB-jMY0AiB4AFi8CSkDGZoPxSndpVMdoZCyKk4IZqVPm2CKbEDNvo9aTtMEgzEBcShN0_MclUWc0iw_UQXysQPGs6fW94hQamahCGw8-wrud6hcKLin4a3j_cZiEfWL9x9BYlLqin0TL74dmudWxDkoC6_gvsnsAPyRtfdqqb-J8q4FH_h5lgdkxhK7MLBE8U2ptY-KkzYtxj5J80mlJZ_EY0wPLs3P8mjKCoimyS-PfiaPXuOUDnWpOF7avNtIVP1y2-dyW5QPyReRc7OPL5MKb2kfOvSXM_82Z9KhpUbRiRRMsoQkO777J5NvL2A76U4LcBT6ewKF3ysmpZ9mF0vVnxuZ0mrd6M7282UbJrRiiIfdSfwLWPfM7DBRmU49qR0m-QYJ0WRBggFyqVXtDXlSrD7cyXimjuh58V7yabwkO2Q5OCZkv_7K5NuZ8f4zrLqnnsd7MtzPh4Nu46ktik-5P4Vlgn-uI_rAI2PkJSdYl3HCqxNWfGq_6KfWs5lx1oYsHbjtGSTI0Zv1tMG3O6MKj0yx2lvpBvtc8s9OhXc7fPcAkGwCIz2pAiN_XYVn0YI_UB741oNuJMt-uk67SJ7VvbLOhGOiNh-o7gP0nPuNQfbncCT3dQ37M7_bSah4Y7bszP5RpnGeH3Af9Tnq96N5HCVjxE1PuItBnhDcgvHnolnIPfud8-Boy_H5sZHYFTPAF63znWSnmenOVPBYGxTfjiY6cOrjw_3LjVYO_nDn14YHXYuKyWPl4TCAxgKxr8Mwm5FhNovOHbEZJNFu0dsX5Eck_2jLTon_dvDBlo_QaLO-7pbLPsA_InJYsk66BQcJDk4jH2nphz4_1ax2_CaFeWrdIxPqO9HzOTT8mbG0hZgLJqEKL-OsM-sT-XLe83Tv_hwW_BAjIYemmxwqzhwcooLQ3X5hWyncTPFnoyuwdpT-k2TG_0UmfxPieG3MxldhlJxqJFUe7zasXxXhp1eEfoiMRk9E53apiu9l2L5nhkGoWrF-5Dk8gDojVP0Cy_P1GmaPzbRL6fG3uNOkJIzghgk1nDpGhBjzteS7wEW0jEieY-vY8GY0He1wcN1ywa9iXsQFu4CrKJvGWTZNsuJidQUF4Zzn0wyKqCQcgPCSTMuyiKOoyqf8QlxRQmMSRQmJ42lSTOKSFlVGl1kMQMu0QAmBhgk58eaZaFNfhFuKq4wQSi8kK0Ha8SLUXIU7gLKrLUqIFNbZLZoTToYr02DQdL5_wdLfcIANtw2Y7d0XdQYwovTvujCiF52RVz9-mRMs9b8AAAD__xglCYs">