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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Convert-func-to-llvm Pass crashed with assertion violation : index.has_value() && "expect only `dim` operations with a constant index"
        </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/a0138390
Reproduced with: 
`mlir-opt --convert-func-to-llvm temp.mlir`

temp.mlir:
``` 
#map = affine_map<()[s0] -> (s0)> 
module {
  func.func @func(%arg0: memref<?x?xf32>, %0: index) { 
    %dim = memref.dim %arg0, %0 : memref<?x?xf32> 
    %1 = affine.apply #map()[%dim] 
 affine.for %arg1 = 0 to %1 {  
    }
    return
 }
}


```
 
trace:
```console  

Assertion failed: (index.has_value() && "expect only `dim` operations with a constant index"), function isDimOpValidSymbol, file AffineOps.cpp, line 340.
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 --convert-func-to-llvm 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 0x0000000104ef45bc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x0000000104ef3624 llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x0000000104ef4c54 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                 0x000000010643d42c mlir::isValidSymbol(mlir::Value, mlir::Region*) (.cold.3) + 0
8  mlir-opt 0x0000000104f10004 mlir::isValidSymbol(mlir::Value, mlir::Region*) + 716
9  mlir-opt                 0x0000000104f17cb0 mlir::LogicalResult verifyDimAndSymbolIdentifiers<mlir::AffineForOp>(mlir::AffineForOp&, mlir::OperandRange, unsigned int) + 244
10 mlir-opt 0x0000000104f17a24 mlir::AffineForOp::verifyRegions() + 524
11 mlir-opt 0x0000000104f3680c mlir::Op<mlir::AffineForOp, mlir::OpTrait::OneRegion, mlir::OpTrait::VariadicResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::VariadicOperands, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::AffineYieldOp>::Impl, mlir::OpTrait::OpInvariants, mlir::OpTrait::AutomaticAllocationScope, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::HasRecursiveMemoryEffects, mlir::LoopLikeOpInterface::Trait, mlir::RegionBranchOpInterface::Trait>::verifyRegionInvariants(mlir::Operation*) + 72
12 mlir-opt                 0x0000000106221c94 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) + 2336
13 mlir-opt                 0x0000000106221694 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) + 800
14 mlir-opt                 0x000000010622274c mlir::LogicalResult mlir::failableParallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0&&) + 352
15 mlir-opt                 0x0000000106221c68 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) + 2292
16 mlir-opt                 0x000000010622130c mlir::verify(mlir::Operation*, bool) + 36
17 mlir-opt                 0x00000001060ff674 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 828
18 mlir-opt 0x00000001060ffa0c mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
19 mlir-opt                 0x0000000106101388 mlir::PassManager::run(mlir::Operation*) + 1148
20 mlir-opt 0x00000001060fa840 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
21 mlir-opt                 0x00000001060fa410 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
22 mlir-opt                 0x000000010616502c 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
23 mlir-opt 0x00000001060f8838 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
24 mlir-opt                 0x00000001060f8d2c mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
25 mlir-opt 0x0000000104d970a0 main + 108
26 dyld 0x0000000109619088 start + 516
zsh: abort      mlir-opt --convert-func-to-llvm temp.mlir

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsGV9v4yj-07gvqBEG27Ef-pCkrbZSq1btaKTdlwhjnHDF4AOcneynPwF24qRJJ7s3uxqdLppJavP7_x8gxvCVZOwmSudRentFOrtW-mahhFCt0rYz8KpU1fYmgrcRnD09PryCsuPCAmIBVU3DLVhb25oIzyJ0H6H7FbfrrpxQ1UToXojN8HPdavUvRm2E7gNehO4JjHGOCxiIv7JWq6qjrAK_c7uO8AyEhSiDjeD6WrUWXF9TJTdM2-u6k_TaqmtHHFjWtBMHFGU9tfC9f49nO2Lh30Ac4Ya0IMK3gNQ1l2zZkDbCiwjlESqidG5glN6C6wjfgQjlBrq37m-P3aiqEwxE03l4BsCJNXFfIEqg-_WEUqJX0GnUsEaz2tHH99_c_xqjCN9FaAEilHoQLiv2LUKFowoGssAtV7zxggYiE__Yk-7xwSc8DmnFI5UnpG3FFgRT7BQPDJ3yPWIPXCvdsw00ILCqpzidgzGX6e3-QTPbadk_71b2f4y_BxcN0MGVmlD20Y1USaMEG_iG75kxTFuuJKgJF6zysYRyb9nJmpjlhoiOBU1BhLIIZSBCiH1rGbVASWeMDDrtMwhUyzRxxIyPS0CA42mJtIOrkDMYWnjfe67c3PLmuf1KBK_etk2phF_mgoGZN-Jzaya0bd1bwSUDOIGTIPrL493s7Q6YrnS5RUDZrYBmLhedmf90rnFjOmYidA-IrACXVHQVA3bNANXErEFJ6Lu3bM_-zRL6DqquaXemhhPgPy9arTRpANGrrmHSGh9rFyfmEXlvS9VZYLx9gCQNM85JTJpOM7BVHViTDQNeoQDE_2AacOnWNHiZffkFKA0Ms14fJjdcK-kkAxuinQMfH78-Ld9-fZo_Pz78dve6dCjOo1aBVnHpLeoKUbHXFew1gt9g-MQwYXWSltTL4mDxzGxN-ONFc2m9Wl98gKJ8D6TJ70tlrGak8UG2AFzaEHJzkGaBZTxiefw5FAFnKDklwmsn3_hKEvELkZVg2uwCew7iGAU26LxmNE3AAQGfKjtBcZIEEhgAwUuzNZY1y1YQWyvdTKqt4OWIJEmzvEhoApaGr6wmTXugbnJAxK41I9UpGtOYMQh6gOU7F8KTQXke6KRjOvQEhZRQnEBASpc63hRZj5p9H7WcpglgWnvEvg5NL3NUluAqQRQMXQfPuDkoBPl-5WsoQ4sR8CtbcSUjNAvmzydUiWqCB2f0suRnvFnHEMLkB_Geg2nce624MEjreEpLOCL5qFacEvHKTCcs2DDN6-0tb2ayF-mhYtLymruoxYs9XiiT90o_t7495qeXQlbt155drZbVK5Err1sn_XxTjRMPDfEcw3NGnBI0NuKBMO5F0COYa5xtKRpIx2dI4yyH9EDgs2ofKfZFE277B8kGV52F-Uo0JxWnwfLmE8jfmFZvHaXMGKU_AxxI9kb-DPSNy5Vgc6Ho-0PTCk65_cJ0wyWxSp_Q-FfORBVc7d86pM8M0D7IjZNGfqrZrLOqIZbTmRCK-h7-RlV7FPULJSvu1ogQ27eW0U4QS0rBwnKgd57JL8S8MtppwzfsiTVKb-_qmtFjwR6Vah_5O3OiW6brfpg5ST84d66JpOsz8IOhxpE4tkl-lBP2KLH7rhCjy2oaQjEtElePiFRy26jOhI7d-p5XHHH66qTiTI9lHIlxWrhsl6AYD70RXyxe9o-Jl8O-CMfJpdKhaULPFsX9ezesusB7IZoIwcS90neErg_y5dCbszD4_81qh5cRSpbwuBi7HeFCScu-2V6aT0X9efTwQ_9uxEmHfEgvz4cs_6fyARWDeNnF4uGDNhNYflIWFqBUbkDo7THk3_QyfrCus-m4Y1bMEi521VI9ty_EmFlFWl___XDcHWruAL4TJeOVmSRia7h5IpKs3Mg6aHC66eeoH_7i_GRndiqQA5NdpsILb5nbwR2Z1oHuJDs1o_x3Oo2RHKsHaaz2mzKlP1A9BAicw0Iv-wvRTNoHWauwsx31CYyGWldcFgkxjHGeH3Ef9Dnp91PtKY6T3l3o9IyWwZrkCQQt024TMvPbbvOdzddgy-HX2CqALpdxv6VaE82qZWvdjLIn9aY6TdnTSkf4bjDRkVM_1sE9-nAssAynMuf6wIdsGAdQ0R8SHerQT52wnzpRfGm6kiQ-P6X_Fck_2rKT_N8d-2DLMCLNu7oOAf4RsWI16YRdVkwwy84juxHo7tDSxz4vdnMSJUKUhL4va3mgyJPg-rm1T4TL70TPz6Hhj4ylPcQtJ4JR68ZIY_X2TL5c9vtxWhBKrn4eC36IkTAQ73Lowok4zlJ4sMs3reB2JqsXrdxWapD-J8mM_4lM_hTidG3MhnMnhM81kjzH44b1_4rwwytCmGKHsyR04bYJ1nl1kGGHnukHIbomer-FGPVsq7lcvbL6cr362QPBYfZITx_iVMUUEggawmXA2CFkoNqKagxcZHEB8xwYS_pjyHSwwx_G33GFA0r_-ZOH6Uc3IVfVDa4KXJArdhNnU5wWcVFMr9Y3mExRldKUEZJnLC-nJUVVHRdVUsM8QckVv0EQYRjHGGa4SKeTosyylFUYTUkVI1hGCWQN4WLixJgovbry9wo3aVEU-EqQkgkzXCHqG39iX3YrEyVQcGPNHs1yK_xlo9civQWLU3q68Az3E_1dICC7C50NV8KPi2B3V_Z33OhcdVrc_PXbFm-Y_wQAAP__AijU4w">