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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]Affine-data-copy-generate triggers segmentation fault
        </td>
    </tr>

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

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

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

<pre>
    Commit: https://github.com/llvm/llvm-project/commit/fd37b4b38d77a0b788695d839ee2b8c07732fb5d

Steps to reproduce:
```
mlir-opt -affine-data-copy-generate="generate-dma=false fast-mem-space=0 skip-non-unit-stride-loops"  test.mlir
```
Test case:
```
module {
  func.func @main(%3:memref<480xi1>) {
    %false = arith.constant false
    %4 = memref.alloc() {alignment = 128 : i64} : memref<i1>
 affine.store %false, %4[] : memref<i1>
    %5 = memref.alloc() {alignment = 128 : i64} : memref<i1>
    memref.copy %4, %5 : memref<i1> to memref<i1>
    affine.for %arg0 = 0 to 480 {
      %11 = affine.load %3[%arg0] : memref<480xi1>
      %12 = affine.load %5[] : memref<i1>
 %13 = arith.cmpi slt, %11, %12 : i1
      %14 = arith.select %13, %11, %12 : i1
      affine.store %14, %5[] : memref<i1>
    }
 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-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt test.mlir "-affine-data-copy-generate=generate-dma=false fast-mem-space=0 skip-non-unit-stride-loops"
 #0 0x0000563d20ae38ba llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x2188ba)
 #1 0x0000563d20ae0ecc SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f7bde0dd980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x0000563d223c739b mlir::detail::walk(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x1afc39b)
 #4 0x0000563d20b7dfad (anonymous namespace)::AffineDataCopyGeneration::runOnOperation() AffineDataCopyGeneration.cpp:0:0
 #5 0x0000563d22225369 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x195a369)
 #6 0x0000563d22225670 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x195a670)
 #7 0x0000563d222259b0 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
 #8 0x0000563d222244d5 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x19594d5)
 #9 0x0000563d222252da mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x195a2da)
#10 0x0000563d222260f9 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.488) Pass.cpp:0:0
#11 0x0000563d2222682d mlir::PassManager::run(mlir::Operation*) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x195b82d)
#12 0x0000563d2221850b performActions(llvm::raw_ostream&, bool, bool, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) (.constprop.274) MlirOptMain.cpp:0:0
#13 0x0000563d22218c08 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, bool, bool, bool, bool, bool, bool, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#14 0x0000563d2221900f 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>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::'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
#15 0x0000563d222dd340 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-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x1a12340)
#16 0x0000563d22217956 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::PassPipelineCLParser const&, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool, bool) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x194c956)
#17 0x0000563d2221944b mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x194e44b)
#18 0x0000563d20ab0430 main (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x1e5430)
#19 0x00007f7bdd1b8c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#20 0x0000563d20ac2eaa _start (llvm-project-fd37b4b38d77a0b788695d839ee2b8c07732fb5d/build/bin/mlir-opt+0x1f7eaa)
Segmentation fault (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWV1v2zgW_TXMC2GDIvX5kAfHrne7aJCgKXaBeTEokZK5pUgtSU2Tf78g5S8pdtMO4pliF2gjySQvD8-59_JSotaKRnF-C5I7kKxuaO-22tzecSp_4932xdyUmr3cLnXbCgfIAm6d6ywgC4DXAK8b4bZ9Oa90C_Bayt_3l1ln9L955QBeV8NQvK4Zycq4JDnLMorKLM_TImE5KTjHZV6hLCO4LhMG0AqgxfD3yfHOQqeh4Z3RrK-4n3rokKLdv_DYSmFmunNwRutaKD5j1NFZpbuXWcMVN9RxQFYA4_3TjLUUkFVNpeWwptbNWt7ObEf9HCsE7VfRzZRWs14JN7POCMZnUuvOAowhdNy6uZ_0LJov3DpYUXsZrma95BBkd8MzhHWvqrn_A0GMWioUwDnACQFk0fLW8BqQZZyjZxEB8gHg4nQshAAnw0oAWUFqhNvOK62so8rB0DDqGodug9k5lVJXYbJgk0rRqJYrF_pEOIdedpHGIFuF2wOaAclgdyB9bp02_AAG4GWYbfCty4MHUMm7g4Jwb877wQBlgJScGeTd7JKZ3fJqbfxoahoUgCA_Js7RWIuwmigapBgGSk0ZDGomdzsDrxg5ijuxhM9ZSt4i1Y8kp-7QdgJa6XYMRNH-Bg9cRtNp45PBlkteucHmDxmY-kN0YP5HnCFb7R4Md71R-5bD78ebk5BaGmq38Iuh55LE46cPi6cP0PZlKxyksOwbn1O0cV7Cn05qwtqeW4DXkCoGhapkzzh0Ww6rgKKk1Vfnkcz3eYxWXyHr2-4ADc0BKh6NbgxtITVN793bg4Cnc81-OGviddkLGa4-d6wPCfGQqSDA-LvZ8V1S48H9CILoGSGEkpQwjCgneUnD4jwHZGFf7HDzaIRygaFBPJwfOxn6baOtM5y2AKfeh4RyISkMvd6PJ4Dv0DOO8rykABfHVUSTVSBeVfBJNIrKv1PFJDcA5ztQw892XnVeZxT-HwzhnaGszkrGEWNFjuBmY3gIko3x4ZV7VxMlwOvnPN2k8UwK1T_PGtUPDZ3bGk7Z3Oo5CoAjXORohJec4sWkykhRwrBRBUIZd1TI4f4blV8Bzo-ND53XX2gF8MJzfdTBb0y-YTME7O9a-Cx0cWgR9qjlybz_ovLrg2GerWuJF9G6IkU5YiMeqVdmrA7pM6dKq5dW9xYq2vLBtT1qD3URQmRFHV3q7uVvQ1D4lQ0e2asHdbLasEVdGnLeE5KRRBgnJC0uSPTQfdEP3SO1dsFo57Q5gBix7zvsNLus5rFloah8scLeU0UbL8kSllpLf-1VKAjZdeMsKhJK0mIkVTplJc3QT7PyKDouheIT3_RdD4tN352m00F-qo_KOhMSujavrI47nHjWHvsjNVy5j6rWMNRwQ0RdUYk0G6eQbKpEUf68EidBsrAvqvrYdhLgfCBwF2kAZ5K2JaMAZyPF3m-Kh-7x3lMZZN_9psMoL40P3j9l4kFJ6I2dzwn5hPM4Zsk7c349Dypilow8qJh6EGb0_y_DYXYsJXwlgSaspKj--bz_v53hhlNrZ3Q3j_OwtZ4PGU9nNKUzx2yCYr-usy41KVmu5whljtnIEfAYeZQnqIQdN7U27SLUWfaNKniv0v5qHdtV1VtqONt0zgCyPFp40r2p-H1j_EF3x_nES-4_ffy81MrxZ_dW-Xcc9Ek3oqLyM7e9dPBVxJ565L4mHEOfqo6z2P94L4V56Nw9FWdqKE8hmVJYoRx2Rlfc2ru-rkNZ_j0GD4z1Svyn568Yu-etNi97Uyf9Ga9pL92Gccn9senSGPLh7ILfvl6H9mOPlaD-NP-ZN8I687Lj4zjrl3DGeAxoFj8kRjwRo0CohpfQ_pHl_XliXXaZQGRoqaiU_oS_qdUI9glPv4zz_TXO9LMu_72q8JfRHudSq-avku8VpLfDcnLOZIzEp3W87aRwC8UeJ1nz13bOX4L7N3uc3eau8s4jwiRGo-picpCOsiJJ4a-dpcYZZ18mLj89UmO5uVCwvGfqubpORVwVSTrSKZvumnFcXtRpV4VXWzrU25MC7ckZoZrPvP5xiq64VB7H5Wip-fglaoligmBLhboWBp7EZBwVxenrVxaVeZVncLORoqw21lHjNjs8B7uNb5st__mPb7-Vh0c895vSurI9wOv5_HAbGoOdeQXIgsTxKBfjycvwCnNK4TDxtTioM06PB9An3hxOYzCEp5-30oaH7xL85ISy_2hyw24JK0hBb_htlGZZnuZpRm62t6xmnHNKozhL44rFLMFRlFS4inJGaEluxC1GmCCCSJTjLCZzXvOKZFFFCk4KlhcgRrylQs79wufaNDfhk8ptGkVpdiNpyaXdf5M2t4Gdsm8siJEU1tnjMCecDF-v_fEFJKvFpe8b0BnRNNxYaF8xcdMbefvHPwIF0P8NAAD__5tAdNo">