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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] OpenMP ICE
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          ye-luo
      </td>
    </tr>
</table>

<pre>
    Breakage happens between e3ffc4b6d4df3970dd10e65dcafd6f2d31deefd8 good and c8dc6b59d68635f73d2970b7fc8bc9c6c2684098 bad.
`repro.f90`
```
program main
  implicit none
  integer :: ns
  REAL(8) :: etetra(4), dosint0(2)
  !$omp parallel reduction(+:dosint0) private(ns)
  DO ns = 1, 3
  enddo
  !$omp end parallel
endprogram
```
```
flang-new -fopenmp -O0 repro.f90 # works
flang-new -fopenmp -O3 repro.f90 
flang-new: /vast/users/yeluo/opt/llvm-clang/llvm-project-nightly/llvm/lib/IR/Instruction.cpp:132: BasicBlock::iterator llvm::Instruction::insertInto(BasicBlock *, BasicBlock::iterator): Assertion `(It == ParentBB->end() || It->getParent() == ParentBB) && "It not in ParentBB"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /soft/compilers/llvm/main-20240528/bin/flang-new -fc1 -triple x86_64-unknown-linux-gnu -emit-obj -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -fversion-loops-for-stride -fopenmp -resource-dir /soft/compilers/llvm/main-20240528/bin/.. -mframe-pointer=none -O3 -o /tmp/repro-53af4b.o -x f95-cpp-input repro.f90
 #0 0x000055e54b52f588 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x2acd588)
 #1 0x000055e54b52d05e llvm::sys::RunSignalHandlers() (/soft/compilers/llvm/main-20240528/bin/flang-new+0x2acb05e)
 #2 0x000055e54b52fd6d SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f16f7e83910 __restore_rt (/lib64/libpthread.so.0+0x16910)
 #4 0x00007f16f77b1d2b raise (/lib64/libc.so.6+0x4ad2b)
 #5 0x00007f16f77b33e5 abort (/lib64/libc.so.6+0x4c3e5)
 #6 0x00007f16f77a9c6a __assert_fail_base (/lib64/libc.so.6+0x42c6a)
 #7 0x00007f16f77a9cf2 (/lib64/libc.so.6+0x42cf2)
 #8 0x000055e54fb637af (/soft/compilers/llvm/main-20240528/bin/flang-new+0x71017af)
 #9 0x000055e54d9a0378 llvm::IRBuilderCallbackInserter::InsertHelper(llvm::Instruction*, llvm::Twine const&, llvm::BasicBlock*, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true>, false, false>) const (/soft/compilers/llvm/main-20240528/bin/flang-new+0x4f3e378)
#10 0x000055e549f74679 llvm::IRBuilderBase::CreateAlloca(llvm::Type*, llvm::Value*, llvm::Twine const&) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x1512679)
#11 0x000055e54ce282da void llvm::function_ref<void (llvm::IRBuilderBase::InsertPoint, llvm::IRBuilderBase::InsertPoint)>::callback_fn<convertOmpParallel(mlir::omp::ParallelOp, llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&)::$_1>(long, llvm::IRBuilderBase::InsertPoint, llvm::IRBuilderBase::InsertPoint) OpenMPToLLVMIRTranslation.cpp:0:0
#12 0x000055e54eda36a1 llvm::OpenMPIRBuilder::createParallel(llvm::OpenMPIRBuilder::LocationDescription const&, llvm::IRBuilderBase::InsertPoint, llvm::function_ref<void (llvm::IRBuilderBase::InsertPoint, llvm::IRBuilderBase::InsertPoint)>, llvm::function_ref<llvm::IRBuilderBase::InsertPoint (llvm::IRBuilderBase::InsertPoint, llvm::IRBuilderBase::InsertPoint, llvm::Value&, llvm::Value&, llvm::Value*&)>, std::function<void (llvm::IRBuilderBase::InsertPoint)>, llvm::Value*, llvm::Value*, llvm::omp::ProcBindKind, bool) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x63416a1)
#13 0x000055e54ce15881 convertHostOrTargetOperation(mlir::Operation*, llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&) OpenMPToLLVMIRTranslation.cpp:0:0
#14 0x000055e54d996741 mlir::LLVM::ModuleTranslation::convertOperation(mlir::Operation&, llvm::IRBuilderBase&, bool) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x4f34741)
#15 0x000055e54d996f5c mlir::LLVM::ModuleTranslation::convertBlockImpl(mlir::Block&, bool, llvm::IRBuilderBase&, bool) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x4f34f5c)
#16 0x000055e54d99a6cf mlir::LLVM::ModuleTranslation::convertOneFunction(mlir::LLVM::LLVMFuncOp) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x4f386cf)
#17 0x000055e54d99c79a mlir::LLVM::ModuleTranslation::convertFunctions() (/soft/compilers/llvm/main-20240528/bin/flang-new+0x4f3a79a)
#18 0x000055e54d99ebf6 mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x4f3cbf6)
#19 0x000055e54b7b5b1d Fortran::frontend::CodeGenAction::generateLLVMIR() (/soft/compilers/llvm/main-20240528/bin/flang-new+0x2d53b1d)
#20 0x000055e54b7b8ada Fortran::frontend::CodeGenAction::executeAction() (/soft/compilers/llvm/main-20240528/bin/flang-new+0x2d56ada)
#21 0x000055e54b57728c Fortran::frontend::FrontendAction::execute() (/soft/compilers/llvm/main-20240528/bin/flang-new+0x2b1528c)
#22 0x000055e54b560e42 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x2afee42)
#23 0x000055e54b57b4e8 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x2b194e8)
#24 0x000055e549ec49e1 fc1_main(llvm::ArrayRef<char const*>, char const*) (/soft/compilers/llvm/main-20240528/bin/flang-new+0x14629e1)
#25 0x000055e549ec306b main (/soft/compilers/llvm/main-20240528/bin/flang-new+0x146106b)
#26 0x00007f16f779c24d __libc_start_main (/lib64/libc.so.6+0x3524d)
#27 0x000055e549ec2b1a _start /home/abuild/rpmbuild/BUILD/glibc-2.31/csu/../sysdeps/x86_64/start.S:122:0
flang-new: error: unable to execute command: Aborted
```



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WVtzozoS_jXKiwoXSFwf8mA74z2pnamkMtnz6hJS4-gEJEoSufz7LQGOwfHJTLLeUzUTQ0vq7q_vALNW7hTAJUpWKLm6YJ170ObyFYK60xelFq-XKwPske0AP7C2BWVxCe4ZQGGgVcXjMhWxqGiRhUJEIaSJ4KwSaUUEjQRAJXK801pgpgTmueBpmRQizVOaVBkVpMjCMqt4XvKCp5ykeRwWOS6ZWKDwCoVLlIYGWqMXVRGiNHwjjv_629bonWENbphUAwVj2bS15NJhpRW8EZWDHRiM6BLRJVZ2v3D3bfkdkTxHpNgvggNnGCJ5jEiByBoLbaVyISI58ZTxJCIRIrFuWtwyw-oaamxAdNxJrRDJEVkhunw7WuDWyCfmAJFc2QmbqxusLEb0CkdeFt3TQQmh38sCJd7kDaugxGiGkyY6uq1qpnaBgmccVLoF1bQ4uAnxm6UxIhQ_a_NoP9hPp_vn27wBEdk8MesQ2XQWjEVk8wp1pxHZ6NZT6_qpCbg_sb9pjf4LuAuU3D24-nUk-x9ZIrK5vvN_lHVmMO-Cty2iy4gSL27FrOSrWvPHwYHSgWFOG9zz6EmTs-MeZcG4a-U0IvmBAUZk6b3wdyy93-gSL60_LbXC3q4kv3begd6Ht8yAcqtVgOg3UKKPgwKjbI2yNb52nrwDN-zaL85P9iSSIpJiRMi1D2OHpZqsE0QyXDFZwz5Vbr9_W_78hm1XNtJhhstu5z2kjcNO4wfnWutxkA0im510D1254LqZWHniA0Q20toOvNv61JWK150A7B4Ac8PsAy4Zf3SGcRjF_3SMP2LRNd4pAylcoLC4HbOTmV3XgHJ2DA6rKy-G66aV9RAgoyI-jwMSkjhMvHE2pVSIbKYxyCMcOCPbGvBLnm7TOOjUo9LPKqil6l6CnepwAI10gS7_8vt1rU0gJNspbZ3kFgeNgVpz5v0XNFpAjVvJcdBKHtTwBDUmw420QSsBB46ZHbiAt50XGaQxDqonMNafr7VubVBpE1hnpIBJlhiwujMcAiHNV1AvFjhoKsMaCFrt65dB9MrXtD4BA-15uqZFZNMnY5BQVsXlQuPgBVdFEvC2DaRqO3dI1rGcIEJDHL6EYRgmCSRxmZAqyfNJvthXO1zcGqlc799773BE8sMmw5632joDrOkDdu2r7BC--f_iZURW4QthXCR9WT4oHR0pLcIETil916mfcqdY_QdTYhCdn1GvMkxgphc5NqZIBZ5pgEg-2mYg27GChf3_N0Z0ZJRVUVplkNMiCvF2a8A6bWBr3AihlmUaD7-tezDAxMLqRdgrGKVFFM7Ui2dcszISpMSGSQvv2XHPKO0ZxUyQcsYoOWJEKSSYlfqUXlNGnEIyY5TOGbGCpwxvt6wvq1tf2rYl-5V6hKdsxjV7x7Uiv2JRkRmLfOrJqkxpxqqzhE0WhVHGqpmwYipMFCyk2TQHr-9WnawFmDWra19yr_ue5cvA2NLAuD-gbvvwOt3rhm52WLt_lgow18p353S-Nul5x8dkLa3b7pvg9nlbSl_M18c7BDgm64GitICtbr0a860z_dbYmQ78b8Vq2188aSneFui32dpw4YnFgOIszokrCjQ71BpfamYFsqiyOM2KU85ZMa-QJ60NMAfL2veWmUPuX1t4Z9I_Wd29px775zw1K0oikmbFDN-slnIgORGsN_1Em6pTvZu2BipE1_3qPNTeW2EIy1vdl7v1xxab7S28W3syH-N9WylE11yrJzDupmlv92MvyZtajmmgh6GDLverN-1HcoegPxz__v3PH8PVDy26Gu4NU7ZmQ3Cmw7jXj07xNurjLq-1H1s_g-xTVsA3Lagft_faa3Z9N9Hnfcvwfpz1HhCMpiyayBu4vUkdDdxH6sScv9j_fZyWrsByI_uU_psa8hlT_PPR9ZH432X1_1PxRHVIP0Fd7uO1x2mdmMP8koXfW-102TpNPaSm0Xwllfi3VH1lL7Wuz1XbUhpHKYtmtY3Oa1uU5HmExzryh7buxtz3I_1N6xva8Lh-KAkT6vKspeSzqR3P54MizeLoN-UNaT5Wzl-h_DCHh9VzeiyuaJzFc48lx1CrhH8Baj-9XDftvEWMM80EyD8Nt0r4DG56BJelvPqKZxVs9uk9BXw476_8Ft8UzwYnT3k1g5MdweFZwb4AZ4_lnI9rcUVZVrCZuvmRulBW6URdN6oHo7Zjuv5mjfCb11o5eHnfHX86I9XuDqozouNllc7QzZ4qyqxMykjgjTYe1tgSjNdPjQ1irQX8C9Ry8nJsB8rDgzfgZ3t4FgktIzHVl4RH-uZMsE_qCy_AOwfLw6vXs6mbMjELHnL0DiLLSM4_Uncz3p3Q95yallFC8lmRIUdvJdIQYvKxYQfR_vmMKQ6nbfv7UM_3_EJYBRCTGTp65IcyhvwjdCOOA8incaj9GNM7o_h8P5vPihhmT51k1vIL4HEBEa54tO0_cExHt6Ux7PWuH135AzP7eXw5Tmxz2rmeI-OUFDDr3CQ50piGadl_jjmXxChMy5nEo5dHBSexwNttLUu-tY4Zt52IP_3ihyYknleh7AgGKSOGB3YYkc2DbgCRDSv9qIDIxrTN_nL1n-vvV4hsdl5EQBY08nBt17_B9QZ4tQJaj3t4X-1Jnu3iJ6LLiJDDzDf7hgLGaN9scKdYWQN2Go8hjLluGtYHKF6W2jgQpz_8TP5eiEsqClqwC7iMsigLI5ImycXDZcp7M-aloDxMqjzk3qeiAMF9Gy8u5OXooiIqkowmizAMOatIWKQi4jSjKA6hYbJeeLcutNld9J8PLguakeyiZiXUtv_GSEg1fPIhKLm6MJf9R4ey21kUh7W0zh44OOnq_sPkpj-RXI2jM75ef7voTH359U8ag1pPl-S_AQAA__8gh7tJ">