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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]`generateCopy` crashed with segmentation fault when using `-affine-data-copy-generate`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Test on commit: https://github.com/llvm/llvm-project/commit/22c0ce96912f55f48ba4535800bacc0c48fe9832
steps tp reproduceļ¼š
```
mlir-opt test.mlir -affine-data-copy-generate="generate-dma=false fast-mem-space=0 skip-non-unit-stride-loops"
```
test case:
```
module {
  func.func @main(%arg0: memref<f32>, %arg1: memref<i8>, %arg2: memref<i8>, %arg3: memref<17x13x99x25x25xf32>, %arg4: memref<94x1x2x1x25xf32>, %arg5: memref<94xf32>, %arg6: memref<i8>, %arg7: memref<i8>) {
    %cst = arith.constant 1.000000e+00 : f32
    %alloc = memref.alloc() {alignment = 64 : i64} : memref<f32>
    %0 = affine.load %arg0[] : memref<f32>
    %1 = llvm.intr.log(%0)  : (f32) -> f32
    affine.store %1, %alloc[] : memref<f32>
    %alloc_0 = memref.alloc() {alignment = 64 : i64} : memref<f32>
    %2 = affine.load %alloc[] : memref<f32>
    %3 = arith.divf %cst, %2 : f32
    affine.store %3, %alloc_0[] : memref<f32>
    return
  }
}
```
crash trace:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt test.mlir "-affine-data-copy-generate=generate-dma=false fast-mem-space=0 skip-non-unit-stride-loops"
 #0 0x000055d5334feaaa llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x221aaa)
 #1 0x000055d5334fbfac SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f6765dae980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x000055d53360a231 generateCopy(mlir::MemRefRegion const&, mlir::Block*, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, mlir::Block*, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, mlir::AffineCopyOptions, llvm::DenseMap<mlir::Value, mlir::Value, llvm::DenseMapInfo<mlir::Value, void>, llvm::detail::DenseMapPair<mlir::Value, mlir::Value>>&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>&, unsigned long*, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>*, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>*) (.isra.651) LoopUtils.cpp:0:0
 #4 0x000055d53360c599 mlir::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, mlir::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>&)::'lambda0'(llvm::SmallMapVector<mlir::Value, std::unique_ptr<mlir::MemRefRegion, std::default_delete<mlir::MemRefRegion>>, 4u> const&)::operator()(llvm::SmallMapVector<mlir::Value, std::unique_ptr<mlir::MemRefRegion, std::default_delete<mlir::MemRefRegion>>, 4u> const&) const LoopUtils.cpp:0:0
 #5 0x000055d53360e16e mlir::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, mlir::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>&) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x33116e)
 #6 0x000055d53359acd7 (anonymous namespace)::AffineDataCopyGeneration::runOnBlock(mlir::Block*, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>&) AffineDataCopyGeneration.cpp:0:0
 #7 0x000055d53359b9fa (anonymous namespace)::AffineDataCopyGeneration::runOnOperation() AffineDataCopyGeneration.cpp:0:0
 #8 0x000055d534da8e59 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1acbe59)
 #9 0x000055d534da917a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1acc17a)
#10 0x000055d534da94f8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#11 0x000055d534da8635 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1acb635)
#12 0x000055d534da8dca mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1acbdca)
#13 0x000055d534da9cb3 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.495) Pass.cpp:0:0
#14 0x000055d534daa39d mlir::PassManager::run(mlir::Operation*) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1acd39d)
#15 0x000055d534d9d3a3 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#16 0x000055d534d9dad9 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#17 0x000055d534d9de01 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#18 0x000055d534e629b0 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1b859b0)
#19 0x000055d534d9aae3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1abdae3)
#20 0x000055d534d9e1e8 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1ac11e8)
#21 0x000055d5334caec0 main (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x1edec0)
#22 0x00007f6764e89c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#23 0x000055d5334ddb5a _start (llvm-project-22c0ce96912f55f48ba4535800bacc0c48fe9832/build/bin/mlir-opt+0x200b5a)
Segmentation fault (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltv2zoS_jXMC2FDoi6WHvLgxPFuFw0SNN3zcF6MEUXZ3FKklqTa5N8vSPkiKY6bHNQ96aJBEkvikDPzzYUzMsEYvpaMXaLkCiWLC2jtRunLKwbiT9ZsnvRFocqny8_MWKwkpqquuUXRHG-sbQyK5ogsEVmuud20xZSqGpGlEF93H5NGq_8wahFZbqeSJSE0oCxP85BUSVLFWQFxEiVZEBRAaUDjrGJ5FhEULFAwN5Y1BtsGa9ZoVbaUoZslurpG-bwjQGmw_fW3teB6ohqLLTN26u7wBKqKSzYpwcKEquZpsmaSabAMRQtEyO5uUtaAokUFwjBcgbGTmtUT0wB1hAE2X3gzkUpOWsntxFjNSzYRSjUGEXJUGCcDpmCYA-qotKpsBcNodtXdY1y1kk7dP4zioAYuEckQSUCvAwd7zWrNKhRdVxFB0Q0i17gbDQejPBsMklOD0WAwnD2G0WOeP5LE_Y7ZxAPiPH4MH4n7e06ZjCnHBOkpoWbHBvM-UNhRUmMxihYYNLebKVXSWJAWh9PA_zBEroIAu7WqnUNtZ4IQivq5HZepf-DB9mxA8LWsmezWT2O_CE9jNFvgY4borx10MnmvmwoFJd5Z0AfZd-eHfr6LnymXVk-FWndeEDjh_HREMjeR5HiCopuhdlvGxirN_HI7WL2GrxPB066CMwFEjgL0BvGintVL_rXa-sJWUfLc4mNMoj4mq1cZRjPbarm7R7PFNqL3F8PQphrMBlvts8fx6L__eDN_uMGmLWpuMeCiXbs0p7TFVr09w3JjWmYQWWKQJeaSirZk2G4Y7mQpgH7x8kw79g8W6BdctnWzFzCYYv9zr9VaQ41Br1tnYycH7rObvDqLk2XRclG6T5fMlkcSNCLkZI7-gQkaIxIFOHh02SFJyiSK4ooBgFfOwRDNzZPpLu41l9aD9NlbkWQHIg3fVspYzaBGJHXOxKX1kdFR_TicXAp7JCQEAETygxbhSIuiAoof-FqC-CfIUjCNSLYVqntsprRxpg78334hsl1oVqWzNCmB5VmAVyvNfLCstMU-6JeCF4gsH7N0lcYTwWX7OFnLthto7EYzKKdGTQMvcEjyLBjIGw3kTQNwKuwse62aJ0Qyp3OH7y2rP7HqE1tzX3VIF9se5gPJlVD0CyJz9_RgGC64sStu3bJKo-h6PFQyC1x0T6Qq2Uo1litpUHR9WPuucfO5km5xq1vmPr3fuYuvipfb3Wr_rLvoHr4vaX4j9tcRm_us5LzzbstlIOyCScNuoRnw_gNEx-_Io-dTP8hKHZ_ek_Iwra_9bol7cHNfI0F04xdMj4jywOxLCM5fKfl4yk6BPctW-majxELJ9Tv0w_cokN9RptxomKauksvxR6Waf1v-UjqPR3mWJnnec4Run12ABefV_9htsv297e_X-31Z4WRCGGxOxpYdWScCiCNhOdbvJ0Vf3lEhMhNQFyUEiMwGVn-oQYhbaP5gtMP5SD7Z69dK_t-WrRo7JOzv2gP6klXQCmcrwVxJ99KcrbzXOG5dW3PANt_hunUD34b8SvJ3198L3mQUvCxM2e_g_R28Z2oroigMUzYo09OBByY50HLmuINU8qlWrcESatb1XLuonB9zSx8OvlVq5Z3clp7Z94rRnwboSzIfj8vZCJUir-AHoNKTMnu7UFlfqLiEjCX9nb4fWnfNZ3XX3IMx8xIaH4pbIQY2cQRbwF6GshdPEsST4eYWJKxdv3mNC6XEoNQ7a1scAi1Ykg8cOB-hkoczeDMq97xhgks2QKcj3Sub_nCY-pMcqw_SWO3fv7gdb36KoOdZO9nvQTNpXWTs0tz8rJag4ezwhgKRKAzGloir7M2W6AXJ3DxJ-qFuBCJZB-C4qOlqmnOwuGvub32SOVWMnJ_xtopwiz3PCQ7zcJwT0ij5wZifMZbTKBl4EBlrU9K3x_Ivn-FKOoyraBxXtIh-Z7hBhuu-Cmq0aqZx7nzqRMjEIzghysuRFDu9jrrUEJYzOkIZ5eXAEZKh5HkZQYQbpiul6zndvq86-dJ6X_OaDWhWbhuiXlOlWk3Z7VoPu5m-lW4_fvh0raRlj_aZBW8F13eNvQUur5Ws-HrQEfVGj1smHesHZY4brSgz5qqtKv-K-1XqDfq9w4xbViv9tFvqVL_3wpx9v_c6nft0Cw6CUesaR2P107O3cp_9G_V7H0bzV8E1G8PFgrDH8KNacwriEzOtsD1GVSu9r6y6r71emoBI9vPgfNmouSdyIxSEKIB-WVVy2JAfcHqH7nHc7K8MmaPlzruxCsm697o_E9gTIn0_YIYNFEtJXgQ9U5hGcDuX5f0o4_wd2v2CQXqS4lAgnLmqLLIkL4LBtjnqEHMAFh2PwP-3_HG22qQogUV9kMmo-ctZyLIXQd7WhnQDXRU4esvzYDWX60-seg0UZ-9SwpBlA1VH38RTYDTANXB5LhlYyejApcngO_yYZTnNZni1ErygK2NB29VWnv26azc2uf7jX9_-LPa3ZOp2lCU1LSLL6XR_6Qf9OlOKonkUx4NESobf7cdlWSSAO8bnOhARBEVyaIse2HrfI2AfW44vVZr58y2sVzfvjuBclJdRmUc5XLDLMJ1lUZokSXyxuQxjEtIMoqyKEzKbxaxiZRRDQeI8CCKAC35JAhIFUZCHJMrDeBqEQZjFySxjGcSzqkRxwGrgYuqPcCm9vvBHcy7TkGTZhYCCCeMPXBIi2TfsBxEhKFlc6EsPVtGuDYoDwY01h1Ust8Kf1HQ1N0oWKA0GByjSoDvpw0r8jdsNNs9R-bZhEreGyzVGaXDi1E0aXLRaXP71Q0he2f8FAAD__4aK-Dc">