<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64959>64959</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[OpenMP][AA] Previous commit introduces compilation failure
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
jdoerfert
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
doru1004
</td>
</tr>
</table>
<pre>
This commit:
https://reviews.llvm.org/rG80906ce48d5bb28e06d0a113e7d62eb1358c8ecc
Makes the following fail with an assertion error during compilation:
```
#include <stdio.h>
#define N 10
int main (void)
{
long int aa=0;
int res = 0;
int ng =12;
int cmom = 14;
int nxyz = 5000;
#pragma omp target teams distribute num_teams(nxyz) thread_limit(ng*(cmom-1)) map(tofrom:aa)
for (int gid = 0; gid < nxyz; gid++) {
#pragma omp parallel for collapse(2)
for (unsigned int g = 0; g < ng; g++) {
for (unsigned int l = 0; l < cmom-1; l++) {
int a = 0;
#pragma omp parallel for reduction(+:a)
for (int i = 0; i < N; i++) {
a += i;
}
#pragma omp atomic
aa += a;
}
}
}
long exp = (long)ng*(cmom-1)*nxyz*(N*(N-1)/2);
printf ("The result is = %ld exp:%ld!\n", aa,exp);
if (aa != exp) {
printf("Failed %ld\n",aa);
return 1;
}
return 0;
}
```
Assertion error:
```
clang-linker-wrapper: /home/dobercea/upstream/llvm-project/llvm/include/llvm/ADT/DenseMap.h:435: void llvm::DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT>::moveFromOldBuckets(BucketT*, BucketT*) [with DerivedT = llvm::DenseMap<ReachabilityQueryInfo<llvm::Function>*, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<ReachabilityQueryInfo<llvm::Function>*>, llvm::detail::DenseSetPair<ReachabilityQueryInfo<llvm::Function>*> >; KeyT = ReachabilityQueryInfo<llvm::Function>*; ValueT = llvm::detail::DenseSetEmpty; KeyInfoT = llvm::DenseMapInfo<ReachabilityQueryInfo<llvm::Function>*>; BucketT = llvm::detail::DenseSetPair<ReachabilityQueryInfo<llvm::Function>*>]: Assertion `!FoundVal && "Key already in new map?"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/dobercea/rocm/trunk_1.0//bin/clang-linker-wrapper --opt-level=O2 --host-triple=x86_64-unknown-linux-gnu --linker-path=/home/dobercea/rocm/trunk_1.0//bin/ld.lld -- -pie -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o snap_red /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/lib -L/usr/lib /tmp/snap_red-3ec23b.o -lomp -lomptarget -lomptarget.devicertl -L/home/dobercea/rocm/trunk_1.0/lib -lgcc --as-needed -lgcc_s --no-as-needed -lpthread -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /lib/x86_64-linux-gnu/crtn.o
#0 0x0000555e04c44304 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x0000555e04c41b34 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f4f1b3e8420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007f4f1ae8500b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#4 0x00007f4f1ae64859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
#5 0x00007f4f1ae64729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
#6 0x00007f4f1ae64729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
#7 0x00007f4f1ae75fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#8 0x0000555e058dacb7 llvm::DenseMap<ReachabilityQueryInfo<llvm::Function>*, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<ReachabilityQueryInfo<llvm::Function>*, void>, llvm::detail::DenseSetPair<ReachabilityQueryInfo<llvm::Function>*>>::grow(unsigned int) (/home/dobercea/rocm/trunk_1.0//bin/clang-linker-wrapper+0x20bfcb7)
#9 0x0000555e058dadab llvm::detail::DenseSetPair<ReachabilityQueryInfo<llvm::Function>*>* llvm::DenseMapBase<llvm::DenseMap<ReachabilityQueryInfo<llvm::Function>*, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<ReachabilityQueryInfo<llvm::Function>*, void>, llvm::detail::DenseSetPair<ReachabilityQueryInfo<llvm::Function>*>>, ReachabilityQueryInfo<llvm::Function>*, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<ReachabilityQueryInfo<llvm::Function>*, void>, llvm::detail::DenseSetPair<ReachabilityQueryInfo<llvm::Function>*>>::InsertIntoBucketImpl<ReachabilityQueryInfo<llvm::Function>*>(ReachabilityQueryInfo<llvm::Function>* const&, ReachabilityQueryInfo<llvm::Function>* const&, llvm::detail::DenseSetPair<ReachabilityQueryInfo<llvm::Function>*>*) (/home/dobercea/rocm/trunk_1.0//bin/clang-linker-wrapper+0x20bfdab)
#10 0x0000555e0590fe21 (anonymous namespace)::AAInterFnReachabilityFunction::instructionCanReach(llvm::Attributor&, llvm::Instruction const&, llvm::Function const&, llvm::SmallPtrSet<llvm::Instruction*, 4u> const*) const AttributorAttributes.cpp:0:0
#11 0x0000555e058e7a79 bool llvm::function_ref<bool (llvm::Instruction&)>::callback_fn<(anonymous namespace)::AAInterFnReachabilityFunction::isReachableImpl(llvm::Attributor&, ReachabilityQueryInfo<llvm::Function>&, llvm::SmallPtrSet<llvm::Function const*, 16u>*)::'lambda0'(llvm::Instruction&)>(long, llvm::Instruction&) AttributorAttributes.cpp:0:0
#12 0x0000555e0587c0e9 checkForAllInstructionsImpl(llvm::Attributor*, llvm::DenseMap<unsigned int, llvm::SmallVector<llvm::Instruction*, 8u>*, llvm::DenseMapInfo<unsigned int, void>, llvm::detail::DenseMapPair<unsigned int, llvm::SmallVector<llvm::Instruction*, 8u>*>>&, llvm::function_ref<bool (llvm::Instruction&)>, llvm::AbstractAttribute const*, llvm::AAIsDead const*, llvm::ArrayRef<unsigned int> const&, bool&, bool, bool) Attributor.cpp:0:0
#13 0x0000555e0588f507 llvm::Attributor::checkForAllInstructions(llvm::function_ref<bool (llvm::Instruction&)>, llvm::AbstractAttribute const&, llvm::ArrayRef<unsigned int> const&, bool&, bool, bool) (/home/dobercea/rocm/trunk_1.0//bin/clang-linker-wrapper+0x2074507)
#14 0x0000555e0590fb99 (anonymous namespace)::AAInterFnReachabilityFunction::isReachableImpl(llvm::Attributor&, ReachabilityQueryInfo<llvm::Function>&, llvm::SmallPtrSet<llvm::Function const*, 16u>*) (.isra.0) AttributorAttributes.cpp:0:0
#15 0x0000555e0590fe06 (anonymous namespace)::AAInterFnReachabilityFunction::instructionCanReach(llvm::Attributor&, llvm::Instruction const&, llvm::Function const&, llvm::SmallPtrSet<llvm::Instruction*, 4u> const*) const AttributorAttributes.cpp:0:0
#16 0x0000555e058e7a79 bool llvm::function_ref<bool (llvm::Instruction&)>::callback_fn<(anonymous namespace)::AAInterFnReachabilityFunction::isReachableImpl(llvm::Attributor&, ReachabilityQueryInfo<llvm::Function>&, llvm::SmallPtrSet<llvm::Function const*, 16u>*)::'lambda0'(llvm::Instruction&)>(long, llvm::Instruction&) AttributorAttributes.cpp:0:0
#17 0x0000555e0587c0e9 checkForAllInstructionsImpl(llvm::Attributor*, llvm::DenseMap<unsigned int, llvm::SmallVector<llvm::Instruction*, 8u>*, llvm::DenseMapInfo<unsigned int, void>, llvm::detail::DenseMapPair<unsigned int, llvm::SmallVector<llvm::Instruction*, 8u>*>>&, llvm::function_ref<bool (llvm::Instruction&)>, llvm::AbstractAttribute const*, llvm::AAIsDead const*, llvm::ArrayRef<unsigned int> const&, bool&, bool, bool) Attributor.cpp:0:0
#18 0x0000555e0588f507 llvm::Attributor::checkForAllInstructions(llvm::function_ref<bool (llvm::Instruction&)>, llvm::AbstractAttribute const&, llvm::ArrayRef<unsigned int> const&, bool&, bool, bool) (/home/dobercea/rocm/trunk_1.0//bin/clang-linker-wrapper+0x2074507)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltz27YS_jXwC4YaEryIfPCDLEXneNq0PnWmrxoQXFGoQYADgL7k158BSImkYid2Gj-0k4wjkdjFXr5dLBYUqTG8lgCXKL1ChPxVKdB70BYRgtLNBe3sQenLSukuCsPkolTV0-WnAzeYqabhFsUrFG5QOHwerG2NGyNbRLYa7jk8mIUQ981C6doN_ScPizBjkORVWpYkhzCrQhpFMSyrjEAZxWnOcmBsKvYjvQOD7QHwXgmhHris8Z5ygR-4PWAqMTUGtOVKYtBaaVx12vEw1bRcUEc4MxRl4fDX35KYSya6CjCK18ZWXC0OKP5wolaw5xLwbxjjKJwK4tLihnKJEcnvFa8QKQby8qq_wFgoWWPHSCmKNyGKTxQ3qMFgFG_wOD6lytoRI3I2iTWq8bOi5IwiH58-e0oahl-KRCRuNa0bilXTYkt1DRZboI3BFTdW87KzgGXX7PwgIrmTh0iB7UEDrXaCu6iTXNaIrBDJnSFB5LwmBW5oi0hu1V6rBsUrSk9o4L3SDiJnYc2rk8PDzdqbPdwjcuX_CjzB8Nz0lmoqBAgvmCkhaGsAkZyMKjE-au2kT_LKA1RPlPeqa3_9gtrnhYhRiPBCBhzc_YuC-gDRs2h_zTENVcd8-pLcyYxXdObfxDwnmo9WcW_Vb_7yKwZhZ44TvMF8kkj9P7TcnA3MLKVWNXxYp5ie5NAzOTMpk5vJpV8g8Nh68xHJ3T0ixTM5turT0Y3-NnwNlK2P_Ki61VzaPfbAkU8HcOusExZzM2hJReV0-mqVigqRCKVr6eoeWbuVStaOOpPJvTzvauSE9AxzVHu9vdot5QKqXtcovF8WU5A02E5LHE0GJ-gM1MliPtLOq5j_XM1r4Vj45sxMUFkHgss70MGDpm0Ljhcjsj2oBhDZVqoEzYAisu1aYzXQBpGtK-ZBq9VfwOxwi8h2qJ7jwGrzCZHtBqSBj7R1xXSVxKlT4Kok9lzxCsWrI8sVNYDi9QY0v4fqkwvCL_Dkv_-kooPjyLXcK3991bE7sJ9clfaCGnUPW62a30XVk1z1OjK5VBmnuLsCo_TK7x9HlT4vvjQMxes_gLIDLbng9ul_HWhvBIrXI_O2k_06jT8MukZaBZZyMRF6C_ZD09qnOdtR3yD7zTrd57fU3lCuv0829jhf-Zh4oN4u42oI5BnOL8PTq_MBfyE2fwOr-OqYDq-w5_txQ-nGJf24KN0CJNFWdbL6kwqMSIZIhhEhv8ATpsJtsk-YSyzhwe-n8dZXjaVveKBa9Kv35tcPq9sP2HRlw92WUnY11tAqbbFVeN6G1dweunLBVDMuz7NVzI3pwCCyxVS6Da5vhVzDxTQ1B1xSdmc1ZTCov7WU3eGqa9pTeQkXfbm_0arWtMFU110D0poXi4pWzJlidSfvdtEi7K0tuURk-1x1wkGgWhsIuAeB4s3vBAfBQRkbWM1bASjePObZLkuCTt5J9SDd9O4xqGWHg6OoltoDijdvtkdUCyEqHAQ4aDng4DPWILRyFlBzCIx98gb0uuAQ7DVtIDhUGgcNBrHf9abhoHqStOFssMcBI3iZJV7FYPBjngVZsjBqQXCgsJG03Wm_jTheRLaDmyf3ENneMm2jhfoqD9OW9yyd0SfGmrHn2Yt-Sgk1l7cLhYNfXz3zLbyIbBeLLz88Kr2c5x2a0s5nTDU_P2_K8Yy-MyaHmW1aRLbHYAQxMBKXDhbheiH_ObTTk-tFBfecgbail_iqpPP6Rc0YDgJqAglQQdWP7AwOAqlmw23fmeNAsNdPe2MSgKxuv51dcqHGljbE4WMYhmGaphAmLEniMME3rjnyxeOTqya3vJZU_JfKSoA-HaD85tyTzIK1rsSE_v9JdnQmOyrjBJ8L49J-UxAZBC33yT4qY8gTEuLdToOxSsNO275_fNlrwcsBf7deQ0SuwscoSUg4tumIxPFUDYU8DcMSa8oNOEjLjrv2c1sLXrLg9vP15-XV6ZYs4sjlnffimKzmyVTQunrdSf7YD9x7a2Tnbr3oBUPxKo1QvIpGS5K5JVmSpwWmpfKevs4SW_Vo-FleSe6ULEcl6bmSJSlwDXbX270zULudYXfv2oHX6uXSOv-FolVjakZ71WlYOANG3dlzundS7NzEXaWGs_rfUFksXRLFyahzOde5TPdV9orEYS5lMp8ycbyvslnK5NMUT_OKsnL5D25Oydr3_e_cpJ7OArVWD2dHdt_x-5j8_U7Ex4yE5Z6Vy1nUivOoVbR8P2_J6uVz1M9U-XaqkPXbTzH_bkQ85Vq6s8q1tKo_IF03rfjeDM3fOgszJY31p6K3R2c2-R2X3bvUkoqW48NjEkezBiotwj2QyD9-kko-NaozWNIGTEsZ-OdJztjV6lpa0Fs59Wv0wLFwaazuHyquac-HSD76u7L9U2Clv8Dxepz6AtJHVS-QbxsqxI3Vt2BnGE8ED_medCj-cJTi8fbXeLTueAXPtHYOvmheimFJlwUulRITe_aDuTsNexSvPXUGxswwv0EfFwmjQrhT8W4vUbz-AWExA02AX29fDckbs_aVUTgPng9ElHWnnO_ZEFkK2pQVDRFZfhut49PcFxKpZ3xDXMk8rksWQoHZAdjdVumVEBPZ5qtIrp4v0ihez9uGL6D7E5gT8PUEzrvnNoyzneBc0euq_EfaDtXrhxo67IlnyfJ9S2QmYlUaqymzp8jOEmzCt7o2G3eSfYGsNX36w1sx83usE950Z-Hs8vg9TbLnUyuep1a-T8Npzz1Jnr4EPJ90M3TeE77sR-Pzg7e0ZZKGy9mWlpxvaWVR_Igt7R9QO52bC240dfC9pd6lX7QBYfazDXg1fNnPNuBf2QYsf7YBP9uA92kD8p9twDu2Ace3EC6qy7gq4oJewGWUFSTP4yQiF4fLihYsLNi-qOI8SfOiivZ0uS-zZZoVUZYlF_yShCQOc5JEMYljsgBWQARlSfZZWWSMoSSEhnJxevHswv--eZklRVpcCFqCMMP7bhIesCcO77vpS__LaNnVBiWh4MaOr69dWG6Ff1Hu9xbkxxuUblB6tVqhdINvNNxzV_X71-Ic4lpVHQMzfQnN_4bbabjotLj8_h9pvR__DwAA__8MqTL3">