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

    <tr>
        <th>Summary</th>
        <td>
            [OpenMP] Different fail modes for memory_manager.cpp OpenMP test
        </td>
    </tr>

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

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

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

<pre>
    I investigated the memory_manager.cpp test in OpenMP and it looks like, on AMD GPUs, it fails in different ways for different optimization levels.

For -O2 and -O3 the test passes consistently.
For -O1 or no optimization level specified it fails occasionally with a GPU memory error.
For -O0 it doesn't even compile, the trace is below:

```
clang-linker-wrapper: /home/dobercea/upstream/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:154: virtual bool llvm::AMDGPUResourceUsageAnalysis::runOnModule(llvm::Module&): Assertion `MF && "function must have been generated already"' 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/upstream/llvm-project/build/./bin/clang-linker-wrapper --opt-level=O0 --host-triple=x86_64-unknown-linux-gnu --linker-path=/home/dobercea/upstream/llvm-project/build/./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 /home/dobercea/upstream/llvm-project/build/runtimes/runtimes-bins/openmp/libomptarget/test/amdgcn-amd-amdhsa/offloading/Output/memory_manager.cpp.tmp /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/home/dobercea/upstream/llvm-project/build/runtimes/runtimes-bins/openmp/libomptarget -L/home/dobercea/upstream/llvm-project/build/./lib -L/home/dobercea/upstream/llvm-project/build/runtimes/runtimes-bins/openmp/runtime/src -L/home/dobercea/upstream/llvm-project/build/lib/clang/18/lib/x86_64-unknown-linux-gnu -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 -rpath /home/dobercea/upstream/llvm-project/build/runtimes/runtimes-bins/openmp/libomptarget -rpath /home/dobercea/upstream/llvm-project/build/runtimes/runtimes-bins/openmp/runtime/src -rpath /home/dobercea/upstream/llvm-project/build/./lib /tmp/memory_manager-1120de.o -lstdc++ -lm -lomp -lomptarget -lomptarget.devicertl -L/home/dobercea/upstream/llvm-project/build/lib -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /lib/x86_64-linux-gnu/crtn.o
1. Running pass 'Function register usage analysis' on module 'ld-temp.o'.
 #0 0x00005606ddf20d54 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x00005606ddf1e584 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fd634757420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007fd6341f400b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007fd6341d3859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007fd6341d3729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007fd6341d3729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007fd6341e4fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x00005606dd257095 (/home/dobercea/upstream/llvm-project/build/./bin/clang-linker-wrapper+0x75e095)
 #9 0x00005606dd8a9252 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/dobercea/upstream/llvm-project/build/./bin/clang-linker-wrapper+0xdb0252)
#10 0x00005606de4d83a5 codegen(llvm::lto::Config const&, llvm::TargetMachine*, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex const&) LTOBackend.cpp:0:0
#11 0x00005606de4d897d llvm::lto::backend(llvm::lto::Config const&, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex&) (/home/dobercea/upstream/llvm-project/build/./bin/clang-linker-wrapper+0x19df97d)
#12 0x00005606de4cf004 llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) (/home/dobercea/upstream/llvm-project/build/./bin/clang-linker-wrapper+0x19d6004)
#13 0x00005606de4cf678 llvm::lto::LTO::run(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, std::function<llvm::Expected<std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>> (unsigned int, llvm::StringRef, llvm::Twine const&)>) (/home/dobercea/upstream/llvm-project/build/./bin/clang-linker-wrapper+0x19d6678)
#14 0x00005606dce28708 (anonymous namespace)::linkBitcodeFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::SmallVectorImpl<llvm::StringRef>&, llvm::opt::ArgList const&) (.constprop.0) ClangLinkerWrapper.cpp:0:0
#15 0x00005606dce2f35a llvm::Error (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int)::'lambda'(auto&)::operator()<llvm::SmallVector<llvm::object::OffloadFile, 3u>>(auto&) const ClangLinkerWrapper.cpp:0:0
#16 0x00005606dce357a6 (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int) ClangLinkerWrapper.cpp:0:0
#17 0x00005606dcd7d709 main (/home/dobercea/upstream/llvm-project/build/./bin/clang-linker-wrapper+0x284709)
#18 0x00007fd6341d5083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#19 0x00005606dce17eee _start (/home/dobercea/upstream/llvm-project/build/./bin/clang-linker-wrapper+0x31eeee)
```


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWVtv2zoS_jXMy0CGTN0f8uAk9dkCCRI0PbuPBiWOZW4oUktSufTXL0g5tuX4tDntttg92CBRJJFz_YbDGZFZK1qFeE6yC5JdnbHBbbQ559oM8zhOz2rNX84_glCPaJ1omUMOboPQYafNy6pjirVoZk3fg0PrQCi47VHd3AFTHIQDqfWDBSkekNBL0AoWN1fw293v1j8KB2smpPVkXKzXaFA5eGIvFtbaHLzSvROd-MKc0AokPqK0MxJfkXgxXpfaQHRLg9DoNgkqBn16Zi1aaLSywjpUTr7MDknmoA0ofUIA2B4bsRbI92rqpmFWaMWkfIEn4TbAvC1bbwAao82EfexpuUarCC0c4CMqaHTXCxncEdQ0rEEQFmqU-okki0O7SB5vf8NjI5lqIynUA5roybC-R0OSBRC63OgOCV1yXaNpkBG6HHrrDLKO0KWUj13UG_1PbNz20f8TNaHLz8y06N8ubq5-u_t9d_MJrR5Mg79b1uJCMflihfVAk2Qxz1Iv9lEYNzAJtdYSAtNkQZLFV-jHCWZQt-pG88F7odwTvr7KCa08_4W1aAIiJI9vlhBGciCUrgfVhIFusA427BGhRlTQokITgpRJg4y_EEoJLQJ8yLfQ3F1_WNx_ADvUnXDAoB5aMNhr48Bp2DjXBz3pktBlK9xmqGeN7g78NvWmsHZAS-hyDHnVyIFjgLYxzG6gZs1DAHkr_t6x5gH40PU7sOMZhJ87o1vDOmCmHTpUzn4HuPUgJCd0OfP3QhG6PBU1EEW6d1GIdJJc3cYQRRttXeSM6CWS5Oq5zFd5Gg3qQekn5cmH56hVA0SvrHrmNiS5-mH9JJ9JySGKIOoFQvQFDEqjvUbMbiLrXoJCo2zcRGvDOow23EDUAcr1alQVIv6iWCearX4whnieBhFbA57LPMrTmdUzCpH-Xt-aQTnRBdBfb6NaKP-se1RdP4rWXe9eV5fPRoQuWcfbRkWs4_5vY708vV5LzbhQLaHL28H1g5_5NsPOXNfDbt1u8dnhQujyvjFuPtNfndMYJ8YpgzW7iW3TnJ5ejSQ1tkLdzzRE17_IZd8vaTZy-rmqbgcIXVrTfL-o0fthgRK6nJfHyJ1Yfdfvhu7PzPV-m729hPUz8jkdUYdjxxSHkk_THc44Ie9oEkTGp5xftWh_gbijKPohea9h73NNYD5NINF8TmOOfglL63hD6AWhFxDJDiKpu368vlq-v59xfBQNGid_KMohkm3TrOz4HyLZu43foCGSzdHYn0xNqPj9t3Oemulxq53P4NOglFBtqA2B0GL5WkwYbH2RaGDwNQuw16KFFr5w7UJ14gkkjxx2_UwTWmw3dSA0iSF-juM4zvI453xNY56lcGeEcmHL_-xrgHvRKib_xhSXaAgtH7XghC4IrWAcei2x4vC34z2f8p5jVqZwzEwo901GdMuoWPM8SYusSGkMq5VB67TBlXFA6Js0dOhMKeotdn4XjQm9iJ_naUpjX7TtxCQTMfN1Gsc1GCasd-AuMFop6ia6__LxS3Gxe6SzZO5XRLDiNTHYF8ux94tnUOJ5fPEYtFGDfwysZw1JFtncF6h7TdKpJjwpswpYrYOl79PE8dEbgSoIKb2QYi8kOxZS0ApadKtR75XF1tdzq0cmh3d7QCjn7fe1QWfbho2is9jXxuVedn5K9krJlSdccd0xoX5MZFX4IErSvcxiKhPTNc_fETiND5k8hEySrHk-CZlyEuI0K-Iq2_L8z9e_QYciw7jKJkpUEyVKVtGMHrQ2ElvWvIz3d8zamzG5fux6uWtt_rCl-bnG8DqmGd0Z43PGJCFhysuEZdBoji1OtZROjzeXWq1FG9plF5S-PDB-7BRvWLMRCkPSugTr-Dj42pGR5HJP8eG5x8YhJ8nlbuKgxL8GXPXOTKZesmaDfCkk3m99ccCc45oN0q04SnT4dbrkw_jrvT2o8HXDd2XuyJYnofDAzsoT0Uv4Y4oDJN--vh-6jpmXj4rj8yFXuP58e8GaB1T8bTr2EM2PIaoKDieAqUcm70bt_7i8weVXLMJ5xddVwSerkE4hbtZxnJ6C-Prz7S6HfMJ2kMz4V7T8a2H58xHI4zidIJAcI5AX5bcQ-Mv5_Xtywl_B8G8R3TsjVPsJ1_8lwZsX5SR408PgbZCWRVx6LZjS6qXTgwXFOrQ9a3D8bOojWqiHC-H8Vu-daCfbxn3HpPw7Nk5v65YDx-s6KB3ub8fPUp5BsP0owX6Nzd6nJwh1vxWwMO21sG6yXxJazsJzb3Tvu4sKLr23roOz_jH66vRWmh05ap1k7EDsB2O0eY_jFop7OVeh7_1p7tt54aPqB_fWFZfQbJgJVVYotMbebiTxLSjras4ILbxBg9O7j-aBNRrmtAmhWk2B2Sv_LsXpJSTDdvUdChoVfTc0-RSaJCtY_r8OxbuNLybG84IXcQXbpuwn5hJapkVcTVJJedQpZnGZwGrlG7OVdcy41Z_pFRs7vHbn420YDHxC15ik1F_34qtpFMwLRIRR8M91RTJHRNy7YnqoNl7P-HnCq6RiZ3g-z6skoXla5Gebc16uswoTTJI4p1mRzVmZJKwq47oq86YszsQ5jWkSl7Sa57TIslma1JyWjPN5yecNz0kaY8eEnHkLZtq0Z-HI6DzP4qI4k6xGacP5K6UKnyAMEkpJdnVmzoPV9dBaksZSWGf3XJxwMhzcjieuJLuCq92J6ZoJCZ3mOB6lnjiv3Z7TOrTubDDy_PsPvoIh_w4AAP__-WGOsw">