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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]crashed on BufferHoistingPass with assertion failure
        </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>
    commit: #[6740991](https://github.com/llvm/llvm-project/tree/67409911353323ca5edf2049ef0df54132fa1ca7)
steps to reproduce:
```
mlir-opt -buffer-hoisting  test.mlir
```
test case:
```
#map0 = affine_map<(d0) -> (d0)>
#map1 = affine_map<(d0) -> (d0 + 1)>
module {
  func.func @main(%0:tensor<20x14xi32>) {
 %cst_2 = spirv.Constant dense<[249, -15633, -17381, -30882, -6071, 27772, -13797, 22872, 2769, -13097, -13371, 32351, -20114, 21927]> : tensor<14xi32> : !spirv.array<14 x i32>
    %4 = builtin.unrealized_conversion_cast %cst_2 : !spirv.array<14 x i32> to tensor<14xi32>
    %13 = bufferization.to_memref %0 : memref<20x14xi32>
    %14 = bufferization.to_memref %4 : memref<14xi32>
    %15 = memref.alloc() {alignment = 128 : i64} : memref<20x14xi32>
    affine.for %arg0 = 0 to 20 {
      affine.for %arg1 = 0 to 14 {
        affine.for %arg2 = #map0(%arg0) to #map1(%arg0) {
          affine.for %arg3 = #map0(%arg1) to #map1(%arg1) {
            %55 = affine.load %13[%arg2, %arg3] : memref<20x14xi32>
            %56 = affine.load %14[%arg3] : memref<14xi32>
            %57 = spirv.BitwiseXor %55, %56 : i32
 affine.store %57, %15[%arg2, %arg3] : memref<20x14xi32>
 }
        }
      }
    }
    return
  }
}
```
crash backtrace:
```
root@22b7604f3d69:/llvm/build/bin# ./mlir-opt /home/verify/202303/buffer/test.mlir -buffer-hoisting
mlir-opt: /llvm/mlir/lib/Dialect/Bufferization/Transforms/BufferViewFlowAnalysis.cpp:92: mlir::BufferViewFlowAnalysis::build(mlir::Operation*)::<lambda(mlir::RegionBranchOpInterface)>: Assertion `entrySuccessor.getSuccessor() && "Invalid entry region without an attached successor region"' failed.
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 /home/verify/202303/buffer/test.mlir -buffer-hoisting
 #0 0x000055a48f53813a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./mlir-opt+0x21f13a)
 #1 0x000055a48f53563c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f243a9b0980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007f2439aa8e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007f2439aaa7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x00007f2439a9a3fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
 #6 0x00007f2439a9a472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #7 0x000055a48f820118 _ZN4llvm12function_refIFvPN4mlir9OperationEEE11callback_fnIZNS1_6detail4walkILNS1_9WalkOrderE1ENS1_15ForwardIteratorEZNS1_22BufferViewFlowAnalysis5buildES3_EUlNS1_23RegionBranchOpInterfaceEE2_SC_vEENSt9enable_ifIXaantsrSt11disjunctionIJSt7is_sameIT2_S3_ESG_ISH_PNS1_6RegionEESG_ISH_PNS1_5BlockEEEE5valuesrSG_IT3_vE5valueESQ_E4typeES3_OT1_EUlS3_E_EEvlS3_ BufferViewFlowAnalysis.cpp:0:0
 #8 0x000055a490f4d6eb void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (./mlir-opt+0x1c346eb)
 #9 0x000055a490f4d6eb void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (./mlir-opt+0x1c346eb)
#10 0x000055a490f4d6eb void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (./mlir-opt+0x1c346eb)
#11 0x000055a490f4d6eb void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (./mlir-opt+0x1c346eb)
#12 0x000055a48f8223af mlir::BufferViewFlowAnalysis::BufferViewFlowAnalysis(mlir::Operation*) (./mlir-opt+0x5093af)
#13 0x000055a48f81aa81 mlir::bufferization::BufferPlacementTransformationBase::BufferPlacementTransformationBase(mlir::Operation*) (./mlir-opt+0x501a81)
#14 0x000055a48f80e85f (anonymous namespace)::BufferHoistingPass::runOnOperation() BufferOptimizations.cpp:0:0
#15 0x000055a490da3479 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (./mlir-opt+0x1a8a479)
#16 0x000055a490da379a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (./mlir-opt+0x1a8a79a)
#17 0x000055a490da3b18 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#18 0x000055a490da2c55 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (./mlir-opt+0x1a89c55)
#19 0x000055a490da33ea mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (./mlir-opt+0x1a8a3ea)
#20 0x000055a490da42d3 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
#21 0x000055a490da49bd mlir::PassManager::run(mlir::Operation*) (./mlir-opt+0x1a8b9bd)
#22 0x000055a490d96363 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#23 0x000055a490d96a52 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
#24 0x000055a490d96e81 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
#25 0x000055a490e59600 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) (./mlir-opt+0x1b40600)
#26 0x000055a490d97395 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (./mlir-opt+0x1a7e395)
#27 0x000055a48f504530 main (./mlir-opt+0x1eb530)
#28 0x00007f2439a8bc87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#29 0x000055a48f51726a _start (./mlir-opt+0x1fe26a)
Aborted (core dumped)
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltz2zb2_zTwC8YaXHh98IMsU_-6k8T-R95uJy8ckAQlNBTABUBf-ul3AFIyKUuO0um23enOODEBHPzOFeccgmbGiLXk_AqE1yC8uWCd3Sh9dc1Z84W3mxd9Uajq5apU262wgM4hIBSE11EcoDTFILwBJNlY2xpA54AsAVmuhd10xaxUW0CWTfO4-3XZavULLy0gS6s5B2Q5gGAaUkpoyUJe1QQFKa9RVYcBpqRmuGQxIClANwDNjeWtgVZBzVutqq7kjqtfAhEafvxw2wh9qVoLL4uurrm-3ChhrJBrCC03dubWj250q7Bk5iQyIHTLWgQBvYGsroXk-Za1gC4ASSoESAovAc3gbgRoNt6Hz9oHAbmGeLx7q6qu4RDE1_0YwrqT5cz9B0GAtkxIQBJAQgTo3HJplAZ0QdAzDp4FJQ6HpKPtgISlsTnx4phW6MfZQkljmbSw4tKpvwDhNQlSQBbwEocRpf1TTBPsnyhKEuKfIhT7KRLHcT-DaZzGfook_RSJowGKon7pElPa76OEhj0mQRgHnhynJHbR5UxC53Cv0l4f2Acj7oVnWrMXvwyf4aDwYCjolA28okUnGivkrJOas0b8yqu8VPKRayOUzEtm7Ngw78O7MHwr1YQppgNXF4HiV2aFkjOr8i3fal47CuTZ9ONDf02Qgm8hBVOkEzChh-mpZqxpVOmjxkcGa8Rabrm0ngaTxCOKKADxzTli9kE9q5V2rJhe92cEOUMRNA7do9T4ldppO6U-Qt-H7nAa-9h3PJ0yVg3zeDr_BvQILD0Ki0_A4hOw3tphODrss0axqg8Kl2l7FVykD2xBeJaRx_DRUfhgD_8W8xuA8SgbXAv7JAz_uTdMGA6ieqZzfwR6iIG9sUrzHmSgxOFv1hPEN1MBDyYmw8lAc9tpuRvvl14fprm81MxsYMHKr1az08VEK2VBgAgp4ggFNa2itK92Q3VzaaVyv10SpnAGyHJffwBZbtTWVbtHrkX9AsiSIEIR9fvccXb1cFeS3pSraTXrc9KOra9hZNmIApDljWBNX1yvx0kCkOWDZtLUSm_NfvEnwZ-WjXqaS9a8GGFmZdsCOk-J94yDpXNA58eJ-7VB5-SV-q7leuA596Vr7n8WDdsWFZuQfuZroeS1ZrLc3LW30nJdO_v3BY_O4dwYrh0WBBHi0uqXVVeW3BilZ2tu94Nd9iIRIBEEhNzKR9aICvo9UHs-8EnYjeosZBIya1m54RU0O4iBCBACSAxrJhpezXqz33_I5qsMmq7YCgsZLLq16zyUti4XfHfXI4zpuHMCZLKCQpZNV3FoNxwexOHAfmVZ-RVW3bbdByaa9SfgXqu1ZlvI9LpzKdvJ8R-IO5fvEETPCCEUhixI6pAmmDLoFfSuNC9DQNxrIa0X-cGfJZK8Emn2lCtjNWdb76oFFNL2jkvGUgNyjZ4JrjFl-57PyYAPZAgjWsKVWEvW_MBk1ThlkgGyn96FNPL_9kBkAIprElCWFihNEMxzzX3-yrWzW7I_U89JlEfBZSNk93y5ll2_0NqN5qyaGTVDXmBM0gRN5KVjNiljCU9iqJkwLkXu08W6EUV5ufjpx6cvxX5IZiQGZGm8FoAsZ84-5sVUvHWh00nx3E88emlk54YeelYCOg_xVOHgQBIW1xiyQnlNz5PEVr01_C7PJDlgEk6ZpIzWDOY584c4d0cqL9j5uvf79g89y3TKMjpkGcTkDN-VzmuR9xpFgetMR16LJ1GWuF40gfmXT4ELZExcr-1SUq55fbt8vP8UuLBN92kvyzKMS9Y07hzntbz98mmF86jilokmeGLN19sPbib9J2u-3umK6wxnbgKHS6WfmK5urYNSOvM7CTmef0Nvw2xF8-wfjSekJ_JplpF8tcgfs-zTyqZcsqLhuahvf2ZMWqNXFuNKmF8GvW5_XNlYmNywLb99ILljsPq__Hb1Q37vNem5ZJPJ8LpR5dcsy7LwkTUdN9qtPtD8cZjIVv-fZ4F9abmT-O4BO6kddJ5lj-4BvluSDs5vMnJRiuqgingBH5WoRlWrN3j_7KwO6OJ18cDS_r3oZA1bjPLc2PuALjzP98tf5gBe1_deP5X3cEmDiBeTkEz_Rvq6PI_-Zvriv5m-5CDFEsrqMxvOE2vviHxUqhCllNUToehUKMxYgkdCTV66x7LcN6zkrvvad9ie5Hq4PDqH7PulxyzBE-mDqfSIJ2Ht9jKp5MtWdQZKtuWm3fXXr4L9MPR698wMNtadvJMjOXxz3RPftVZsByMcSc5OknASzBWjQZyeiOO79kHdtY7xvGKtD9yB_8QkXrI-ck_H9OvKLig-MsnWLjAXsFCqcb876a85q_caT8wSFsTpxLrRoU5xyr5bp3vR8kbIQ3c70r2o0e-u5HiTY3UrjdX-bcG9N83fIxiF-k72e6a5tLeyVrBU0th3gtTZMU7ZxI7xoR0LnHy3HUexOTcvsrzdtg0gSa_-7oWTxLsXznhi79-PxV17_9EZwjttmFPtkID9mflDGPd-gA7s-HlMDmxOyjD8nW1-yv9pGYYT_6eH_qf8-8_Rn5wbKJ_ENEEHOgWkov_LDdPc4MetVu0sSF1EnA5Xgg_NmRbVgRQ7vY4GxDn1E7OkSItq4kYy5ZtGNKKw5dpV6rnvkcw3LjOMrYbLkA3TvMpbqwFdvO5YqU6X_OPatWc7Cx349OOH288LJS1_tm_s_7ERrvx-ZEIulKzFeoSRwtHqcbvSQ_1YSGCrVcmNuR5ugs5Tr5PiXx1_o95HvlX6ZQc1oq94zbrG5hVvuOWn99DsTXf5ns5juuHa072aGqtfhvVXPg_-rubeH4L5WeYKDs3FJ93gB7UWJWs-c9M19nQ_fWoDIMkfZ87TTh3uWQGdjy4sJmKP7PQXDI_jbj_zyBxtFP4yXiFJo-T6jzXsOyJ9-8BM234ephFCI1eYthF2Lqv7g4zzZ2j3X3hI36V4Le_v9mNFgCKEJkXv4L0mjWkaHj8_u5v1BSw3rG8ODq4SVlYLuf7M63PO6PuNY8xpOmkcyfRSNkRBSBHcMiGPI_AipFNNk-lNcVKUSQzzvBFFmRvLtM0HtLPupkvT7S7l-0e_6HH8PTUNgunpSKfy45hEDPaMj2tQcxK99pnzQmnL_dVMqTT3X4P4qH-Zfqi8qK5oldKUXfArHMVxFCc4SS42VwUlaUQQQQWqcIF5HKRBXUWM8rjiRRRfiKv-6xDCmAYUJTNCSJnWQUlJSWjAIxAgvmWimTm_z5ReX_jPWVcRRkly0bCCN8b_DREhkj9BvwgIAeHNhb7yH8KKbm1AgBphrHlFscI2_o-PXAcEwhv_KYxXUEn49pbCf8mDbP9xsGai6TS_6HRz9ds_x3kV_h0AAP__IR0W7w">