Skip to content

[OpenMP][OMPIRBuilder] Crashes with trivial target regionΒ #242591

Open

Description

@amad00r

reproducer:

// clang -fopenmp --offload-arch=native -fopenmp-enable-irbuilder %s
void foo(void) {
    #pragma omp target
    {}
}

backtrace:

clang-24: /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:12596: void llvm::OpenMPIRBuilder::createOffloadEntriesAndInfoMetadata(EmitMetadataErrorReportFunctionTy &): Assertion `E.first && "All ordered entries must exist!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and dumped files.
Stack dump:
0.      Program arguments: /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/bin/clang-24 -cc1 -triple amdgpu9.0a-amd-amdhsa -aux-triple x86_64-unknown-linux-gnu -aux-triple x86_64-unknown-linux-gnu -Werror=atomic-alignment -emit-llvm-bc -flto=full -flto-unit -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name reproducer.5.c -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -aux-target-cpu x86-64 -fvisibility=hidden -fapply-global-visibility-to-externs -mlink-builtin-bitcode /opt/rocm-7.2.1/amdgcn/bitcode/ocml.bc -mlink-builtin-bitcode /opt/rocm-7.2.1/amdgcn/bitcode/oclc_unsafe_math_off.bc -mlink-builtin-bitcode /opt/rocm-7.2.1/amdgcn/bitcode/oclc_finite_only_off.bc -mlink-builtin-bitcode /opt/rocm-7.2.1/amdgcn/bitcode/oclc_wavefrontsize64_on.bc -mlink-builtin-bitcode /opt/rocm-7.2.1/amdgcn/bitcode/oclc_isa_version_90a.bc -mlink-builtin-bitcode /opt/rocm-7.2.1/amdgcn/bitcode/oclc_abi_version_600.bc -target-cpu gfx90a -debugger-tuning=gdb -fdebug-compilation-dir=/usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-3 -fcoverage-compilation-dir=/usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-3 -resource-dir /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/lib/clang/24 -internal-isystem /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/lib/clang/24/include/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/lib/clang/24/include/llvm_libc_wrappers -internal-isystem /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/lib/clang/24/include -internal-isystem /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/bin/../include/x86_64-unknown-linux-gnu -internal-isystem /usr/local/include -internal-isystem /opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/lib/clang/24/include -internal-isystem /usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/bin/../include/x86_64-unknown-linux-gnu -internal-isystem /usr/local/include -internal-isystem /opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -ferror-limit 19 -fmessage-length=49 -fvisibility=protected -fopenmp -fopenmp-enable-irbuilder -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fopenmp-is-target-device -fopenmp-host-ir-file-path /var/tmp/moyasarda1/reproducer-83adfc.bc -faddrsig -fdwarf2-cfi-asm -o /var/tmp/moyasarda1/reproducer-gfx90a-794b43.o -x c reproducer.5.c
1.      <eof> parser at end of file
2.      reproducer.5.c:8:6: LLVM IR generation of declaration 'foo'
 #0 0x000000000326104b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Support/Unix/Signals.inc:931:13
 #1 0x000000000325e8e4 llvm::sys::RunSignalHandlers() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000003261a80 SignalHandler(int, siginfo_t*, void*) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Support/Unix/Signals.inc:474:38
 #3 0x0000000003261908 bool __gnu_cxx::__ops::_Iter_equals_val<int const>::operator()<int const*>(int const*) /opt/rh/gcc-toolset-15/root/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/predefined_ops.h:270:17
 #4 0x0000000003261908 int const* std::__find_if<int const*, __gnu_cxx::__ops::_Iter_equals_val<int const>>(int const*, int const*, __gnu_cxx::__ops::_Iter_equals_val<int const>) /opt/rh/gcc-toolset-15/root/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_algobase.h:2095:36
 #5 0x0000000003261908 int const* std::find<int const*, int>(int const*, int const*, int const&) /opt/rh/gcc-toolset-15/root/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_algo.h:3895:14
 #6 0x0000000003261908 bool llvm::is_contained<int const (&) [10], int>(int const (&) [10], int const&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/ADT/STLExtras.h:1969:12
 #7 0x0000000003261908 SignalHandlerTerminate(int, siginfo_t*, void*) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Support/Unix/Signals.inc:514:7
 #8 0x0000155555116990 __restore_rt (/lib64/libpthread.so.0+0x12990)
 #9 0x000015555395e5af raise (/lib64/libc.so.6+0x4e5af)
#10 0x0000155553931ee5 abort (/lib64/libc.so.6+0x21ee5)
#11 0x0000155553931db9 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21db9)
#12 0x0000155553956f06 (/lib64/libc.so.6+0x46f06)
#13 0x0000000007c28eef llvm::StringMapIterBase<llvm::OffloadEntriesInfoManager::OffloadEntryInfoDeviceGlobalVar, false>::operator++() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/ADT/StringMap.h:504:5
#14 0x0000000007c28eef llvm::OffloadEntriesInfoManager::actOnDeviceGlobalVarEntriesInfo(llvm::function_ref<void (llvm::StringRef, llvm::OffloadEntriesInfoManager::OffloadEntryInfoDeviceGlobalVar const&)> const&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:13422:22
#15 0x0000000007c28eef llvm::OpenMPIRBuilder::createOffloadEntriesAndInfoMetadata(std::function<void (llvm::OpenMPIRBuilder::EmitMetadataErrorKind, llvm::TargetRegionEntryInfo)>&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:12592:22
#16 0x0000000007c27561 llvm::OpenMPIRBuilderConfig::isTargetDevice() const /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:171:5
#17 0x0000000007c27561 llvm::OpenMPIRBuilder::finalize(llvm::Function*) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:1056:14
#18 0x0000000003843a1d llvm::SmallVectorTemplateCommon<std::pair<llvm::WeakTrackingVH, llvm::Value*>, void>::begin() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/ADT/SmallVector.h:278:45
#19 0x0000000003843a1d llvm::SmallVector<std::pair<llvm::WeakTrackingVH, llvm::Value*>, 4u>::~SmallVector() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/ADT/SmallVector.h:1267:31
#20 0x0000000003843a1d clang::CodeGen::CodeGenFunction::~CodeGenFunction() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CodeGenFunction.cpp:100:1
#21 0x0000000003786a56 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_data() const /opt/rh/gcc-toolset-15/root/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:239:28
#22 0x0000000003786a56 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_is_local() const /opt/rh/gcc-toolset-15/root/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:280:6
#23 0x0000000003786a56 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_dispose() /opt/rh/gcc-toolset-15/root/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:298:7
#24 0x0000000003786a56 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() /opt/rh/gcc-toolset-15/root/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:896:9
#25 0x0000000003786a56 llvm::TargetRegionEntryInfo::~TargetRegionEntryInfo() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:250:8
#26 0x0000000003786a56 clang::CodeGen::CGOpenMPRuntime::emitTargetOutlinedFunctionHelper(clang::OMPExecutableDirective const&, llvm::StringRef, llvm::Function*&, llvm::Constant*&, bool, clang::CodeGen::RegionCodeGenTy const&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CGOpenMPRuntime.cpp:6662:1
#27 0x0000000003b36a04 clang::CodeGen::CGOpenMPRuntimeGPU::emitNonSPMDKernel(clang::OMPExecutableDirective const&, llvm::StringRef, llvm::Function*&, llvm::Constant*&, bool, clang::CodeGen::RegionCodeGenTy const&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:749:3
#28 0x0000000003b380bb clang::CodeGen::CGOpenMPRuntimeGPU::emitTargetOutlinedFunction(clang::OMPExecutableDirective const&, llvm::StringRef, llvm::Function*&, llvm::Constant*&, bool, clang::CodeGen::RegionCodeGenTy const&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:882:5
#29 0x000000000381831d clang::CodeGen::CodeGenFunction::EmitOMPTargetDeviceFunction(clang::CodeGen::CodeGenModule&, llvm::StringRef, clang::OMPTargetDirective const&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CGStmtOpenMP.cpp:7654:26
#30 0x0000000003789ffe clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(clang::Stmt const*, llvm::StringRef) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CGOpenMPRuntime.cpp:0:7
#31 0x0000000003789e49 clang::StmtIteratorBase::inStmt() const /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/include/clang/AST/StmtIterator.h:57:13
#32 0x0000000003789e49 clang::StmtIteratorImpl<clang::ConstStmtIterator, clang::Stmt const*>::operator++() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/include/clang/AST/StmtIterator.h:94:9
#33 0x0000000003789e49 clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(clang::Stmt const*, llvm::StringRef) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11651:23
#34 0x000000000378a579 clang::CodeGen::CGOpenMPRuntime::emitTargetFunctions(clang::GlobalDecl) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11699:33
#35 0x0000000003879f19 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CodeGenModule.cpp:4897:23
#36 0x00000000038744c1 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CodeGenModule.cpp:8086:5
#37 0x0000000003b4d5fc (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/ModuleBuilder.cpp:200:20
#38 0x0000000003b470b6 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/CodeGen/CodeGenAction.cpp:150:22
#39 0x000000000656fada clang::ParseAST(clang::Sema&, bool, bool) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/Parse/ParseAST.cpp:169:17
#40 0x0000000003dd3a06 clang::FrontendAction::Execute() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/Frontend/FrontendAction.cpp:1381:10
#41 0x0000000003d50387 llvm::Error::getPtr() const /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/Support/Error.h:278:42
#42 0x0000000003d50387 llvm::Error::operator bool() /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/llvm/include/llvm/Support/Error.h:241:16
#43 0x0000000003d50387 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/Frontend/CompilerInstance.cpp:1040:23
#44 0x0000000003e8736b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:326:25
#45 0x000000000045c0b4 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/tools/driver/cc1_main.cpp:301:13
#46 0x0000000000458255 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/tools/driver/driver.cpp:229:12
#47 0x00000000004573aa clang_main(int, char**, llvm::ToolContext const&) /usr/workspace/moyasarda1/gpu-kernel-versioning/llvm-project-4/clang/tools/driver/driver.cpp:277:12
#48 0x0000000000467186 main /usr/workspace/moyasarda1/gpu-kernel-versioning/build-tioga-4/tools/clang/tools/driver/clang-driver.cpp:17:10
#49 0x000015555394a865 __libc_start_main (/lib64/libc.so.6+0x3a865)
#50 0x0000000000455e0e _start (/usr/WS1/moyasarda1/gpu-kernel-versioning/install-tioga-4/bin/clang-24+0x455e0e)

Activity

  1. added
    crashPrefer [crash-on-valid] or [crash-on-invalid]
    llvm:openmpirbuilderIssues related to problems in the llvm-project/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    and removed on Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    crashPrefer [crash-on-valid] or [crash-on-invalid]llvm:openmpirbuilderIssues related to problems in the llvm-project/lib/Frontend/OpenMP/OMPIRBuilder.cpp

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions