Open admnd opened 1 year ago
@llvm/issue-subscribers-backend-amdgpu
Tested with LLVM 16... Same issue :(
$ /usr/lib/llvm/16/bin/clang++ -v --rocm-device-lib-path=/usr/lib/amdgcn/bitcode --libomptarget-amdgpu-bc-path="/usr/lib64" -fno-lto -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa --offload-arch=gfx1031 -x c openmp_offload.c
clang version 16.0.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/16/bin
Configuration file: /etc/clang/clang++.cfg
System configuration file directory: /etc/clang
Selected GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/13
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
clang-16: warning: argument unused during compilation: '--libomptarget-amdgpu-bc-path=/usr/lib64' [-Wunused-command-line-argument]
"/usr/lib/llvm/16/bin/clang-16" -cc1 -triple x86_64-pc-linux-gnu -emit-llvm-bc -emit-llvm-uselists -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name openmp_offload.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/tmp -resource-dir /usr/lib/llvm/16/bin/../../../../lib/clang/16 -include /usr/include/gentoo/fortify.h -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir=/tmp -ferror-limit 19 -fopenmp -stack-protector 2 -fstack-clash-protection -fgnuc-version=4.2.1 -fcolor-diagnostics -disable-llvm-passes -fopenmp-targets=amdgcn-amd-amdhsa -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/openmp_offload-4c7079.bc -x c openmp_offload.c
clang -cc1 version 16.0.1 based upon LLVM 16.0.1 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include"
ignoring nonexistent directory "/include"
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include"
ignoring nonexistent directory "/include"
ignoring duplicate directory "/usr/lib/llvm/16/bin/../../../../lib/clang/16/include"
ignoring duplicate directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include
/usr/include
End of search list.
"/usr/lib/llvm/16/bin/clang-16" -cc1 -triple amdgcn-amd-amdhsa -aux-triple x86_64-pc-linux-gnu -emit-llvm-bc -emit-llvm-uselists -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name openmp_offload.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -target-cpu gfx1031 -fcuda-is-device -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/ocml.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/ockl.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_daz_opt_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_unsafe_math_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_finite_only_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_wavefrontsize64_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_isa_version_1031.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_abi_version_400.bc -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -resource-dir /usr/lib/llvm/16/bin/../../../../lib/clang/16 -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include/openmp_wrappers -include __clang_openmp_device_functions.h -include /usr/include/gentoo/fortify.h -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir=/tmp -ferror-limit 19 -fvisibility=protected -fopenmp -stack-protector 2 -fgnuc-version=4.2.1 -fcolor-diagnostics -fopenmp-is-device -fopenmp-host-ir-file-path /tmp/openmp_offload-4c7079.bc -faddrsig -o /tmp/openmp_offload-95f937/openmp_offload-gfx1031.bc -x c openmp_offload.c
clang -cc1 version 16.0.1 based upon LLVM 16.0.1 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include"
ignoring nonexistent directory "/include"
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include"
ignoring nonexistent directory "/include"
ignoring nonexistent directory "/usr/local/include"
ignoring duplicate directory "/usr/lib/llvm/16/bin/../../../../lib/clang/16/include"
ignoring duplicate directory "/usr/include"
ignoring duplicate directory "/usr/lib/llvm/16/bin/../../../../lib/clang/16/include"
ignoring duplicate directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/openmp_wrappers
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include
/usr/include
End of search list.
"/usr/lib/llvm/16/bin/clang-offload-packager" -o /tmp/openmp_offload-3deba1.out --image=file=/tmp/openmp_offload-95f937/openmp_offload-gfx1031.bc,triple=amdgcn-amd-amdhsa,arch=gfx1031,kind=openmp
"/usr/lib/llvm/16/bin/clang-16" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name openmp_offload.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/tmp -resource-dir /usr/lib/llvm/16/bin/../../../../lib/clang/16 -fdebug-compilation-dir=/tmp -ferror-limit 19 -fopenmp -stack-protector 2 -fstack-clash-protection -fgnuc-version=4.2.1 -fcolor-diagnostics -fembed-offload-object=/tmp/openmp_offload-3deba1.out -fopenmp-targets=amdgcn-amd-amdhsa -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/openmp_offload-c5aed5.o -x ir /tmp/openmp_offload-4c7079.bc
clang -cc1 version 16.0.1 based upon LLVM 16.0.1 default target x86_64-pc-linux-gnu
"/usr/lib/llvm/16/bin/clang-linker-wrapper" --host-triple=x86_64-pc-linux-gnu --wrapper-verbose --linker-path=/usr/bin/x86_64-pc-linux-gnu-ld.bfd -- -pie --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/13 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/lib -L/lib -L/usr/lib /tmp/openmp_offload-c5aed5.o -lstdc++ -lm -lomp -lomptarget -lomptarget.devicertl -rpath /usr/lib/llvm/16/lib64 -L/usr/lib/llvm/16/lib64 -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/crtn.o
LLVM ERROR: unsupported libcall legalization
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/lib/llvm/16/bin/clang-linker-wrapper --host-triple=x86_64-pc-linux-gnu --wrapper-verbose --linker-path=/usr/bin/x86_64-pc-linux-gnu-ld.bfd -- -pie --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/13 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/lib -L/lib -L/usr/lib /tmp/openmp_offload-c5aed5.o -lstdc++ -lm -lomp -lomptarget -lomptarget.devicertl -rpath /usr/lib/llvm/16/lib64 -L/usr/lib/llvm/16/lib64 -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/crtn.o
1. Running pass 'CallGraph Pass Manager' on module 'ld-temp.o'.
2. Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@__omp_outlined__'
#0 0x00007fe33387d8a1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/Unix/Signals.inc:567:22
#1 0x00007fe33387aa0b std::atomic<CallbackAndCookie::Status>::store(CallbackAndCookie::Status, std::memory_order) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/atomic:279:16
#2 0x00007fe33387aa0b llvm::sys::RunSignalHandlers() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/Signals.cpp:106:21
#3 0x00007fe33387aa0b SignalHandler /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/Unix/Signals.inc:402:31
#4 0x00007fe33217f5e0 (/lib64/libc.so.6+0x395e0)
#5 0x00007fe3321d05ac __pthread_kill_implementation /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/nptl/pthread_kill.c:44:76
#6 0x00007fe33217f536 raise /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/signal/../sysdeps/posix/raise.c:27:6
#7 0x00007fe332168875 abort /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/stdlib/abort.c:81:7
#8 0x00007fe333249e52 llvm::raw_pwrite_stream::~raw_pwrite_stream() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/Support/raw_ostream.h:428:7
#9 0x00007fe333249e52 llvm::raw_svector_ostream::~raw_svector_ostream() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/Support/raw_ostream.h:692:3
#10 0x00007fe333249e52 llvm::report_fatal_error(llvm::Twine const&, bool) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/ErrorHandling.cpp:115:3
#11 0x00007fe333777725 llvm::report_fatal_error(char const*, bool) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/ErrorHandling.cpp:83:21
#12 0x00007fe3362b0d1a llvm::SITargetLowering::LowerCall(llvm::TargetLowering::CallLoweringInfo&, llvm::SmallVectorImpl<llvm::SDValue>&) const /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:3118:0
#13 0x00007fe33430daf9 llvm::TargetLowering::LowerCallTo(llvm::TargetLowering::CallLoweringInfo&) const /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10168:13
#14 0x00007fe334434e84 llvm::SmallVectorTemplateCommon<llvm::SDValue, void>::begin() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/ADT/SmallVector.h:270:45
#15 0x00007fe334434e84 llvm::SmallVectorTemplateCommon<llvm::SDValue, void>::end() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/ADT/SmallVector.h:272:32
#16 0x00007fe334434e84 llvm::SmallVector<llvm::SDValue, 4u>::~SmallVector() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/ADT/SmallVector.h:1206:24
#17 0x00007fe334434e84 llvm::TargetLowering::CallLoweringInfo::~CallLoweringInfo() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/CodeGen/TargetLowering.h:4170:10
#18 0x00007fe334434e84 llvm::TargetLowering::makeLibCall(llvm::SelectionDAG&, llvm::RTLIB::Libcall, llvm::EVT, llvm::ArrayRef<llvm::SDValue>, llvm::TargetLowering::MakeLibCallOptions, llvm::SDLoc const&, llvm::SDValue) const /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:195:1
#19 0x00007fe334301779 llvm::TrackingMDRef::untrack() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/TrackingMDRef.h:89:9
#20 0x00007fe334301779 llvm::TrackingMDRef::~TrackingMDRef() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/TrackingMDRef.h:55:29
#21 0x00007fe334301779 llvm::TypedTrackingMDRef<llvm::MDNode>::~TypedTrackingMDRef() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/TrackingMDRef.h:106:26
#22 0x00007fe334301779 llvm::DebugLoc::~DebugLoc() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/DebugLoc.h:33:9
#23 0x00007fe334301779 llvm::SDLoc::~SDLoc() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1106:7
#24 0x00007fe334301779 llvm::SelectionDAGBuilder::visitSPDescriptorFailure(llvm::StackProtectorDescriptor&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:2807:61
#25 0x00007fe3343c8368 llvm::SelectionDAGISel::FinishBasicBlock() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1727:22
#26 0x00007fe3343ca9d2 std::__uniq_ptr_impl<llvm::FunctionLoweringInfo, std::default_delete<llvm::FunctionLoweringInfo>>::_M_ptr() const /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:199:67
#27 0x00007fe3343ca9d2 std::unique_ptr<llvm::FunctionLoweringInfo, std::default_delete<llvm::FunctionLoweringInfo>>::get() const /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:470:27
#28 0x00007fe3343ca9d2 std::unique_ptr<llvm::FunctionLoweringInfo, std::default_delete<llvm::FunctionLoweringInfo>>::operator->() const /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:463:12
#29 0x00007fe3343ca9d2 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1645:13
#30 0x00007fe3343cd821 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:481:22
#31 0x00007fe333d7a891 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:33
#32 0x00007fe333a17a69 llvm::FPPassManager::runOnFunction(llvm::Function&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/IR/LegacyPassManager.cpp:1430:40
#33 0x00007fe3353445d9 RunPassOnSCC /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Analysis/CallGraphSCCPass.cpp:179:17
#34 0x00007fe3353445d9 RunAllPassesOnSCC /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Analysis/CallGraphSCCPass.cpp:469:21
#35 0x00007fe3353445d9 runOnModule /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Analysis/CallGraphSCCPass.cpp:534:35
#36 0x00007fe333a18689 runOnModule /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/IR/LegacyPassManager.cpp:1552:7
#37 0x00007fe333a18689 llvm::legacy::PassManagerImpl::run(llvm::Module&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/IR/LegacyPassManager.cpp:535:55
#38 0x00007fe33569db30 codegen /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTOBackend.cpp:415:3
#39 0x00007fe33569e242 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#40 0x00007fe33569e242 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#41 0x00007fe33569e242 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&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTOBackend.cpp:512:12
#42 0x00007fe335692329 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#43 0x00007fe335692329 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#44 0x00007fe335692329 llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTO.cpp:1179:70
#45 0x00007fe335692a12 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#46 0x00007fe335692a12 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#47 0x00007fe335692a12 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&)>) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTO.cpp:1074:41
#48 0x000055bbf25df483 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#49 0x000055bbf25df483 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#50 0x000055bbf25df483 (anonymous namespace)::linkBitcodeFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::SmallVectorImpl<llvm::StringRef>&, llvm::opt::ArgList const&) (.constprop.0) /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:740:44
#51 0x000055bbf25e29f6 llvm::Error::getPtr() const /usr/lib/llvm/16/include/llvm/Support/Error.h:275:12
#52 0x000055bbf25e29f6 llvm::Error::operator bool() /usr/lib/llvm/16/include/llvm/Support/Error.h:235:22
#53 0x000055bbf25e29f6 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 /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:1025:5
#54 0x000055bbf25e6d52 parallelTransformReduce<llvm::SmallVector<llvm::object::OffloadFile>*, LLVMOpaqueError*, llvm::parallelForEachError<SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)> >(SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)>)::<lambda(LLVMErrorRef, LLVMErrorRef)>, llvm::parallelForEachError<SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)> >(SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)>)::<lambda(auto:33&&)> > /usr/lib/llvm/16/include/llvm/Support/Parallel.h:249:18
#55 0x000055bbf25e6d52 parallelForEachError<llvm::SmallVector<llvm::SmallVector<llvm::object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)> > /usr/lib/llvm/16/include/llvm/Support/Parallel.h:287:47
#56 0x000055bbf25e6d52 (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int) /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:1069:4
#57 0x000055bbf25cedb3 std::_Tuple_impl<0ul, llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>::_Tuple_impl(std::_Tuple_impl<0ul, llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/tuple:302:7
#58 0x000055bbf25cedb3 std::tuple<llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>::tuple(std::tuple<llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/tuple:1351:17
#59 0x000055bbf25cedb3 std::__uniq_ptr_impl<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>::__uniq_ptr_impl(std::__uniq_ptr_impl<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:185:9
#60 0x000055bbf25cedb3 std::__uniq_ptr_data<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>, true, true>::__uniq_ptr_data(std::__uniq_ptr_data<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>, true, true>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:242:7
#61 0x000055bbf25cedb3 std::unique_ptr<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>::unique_ptr(std::unique_ptr<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:366:7
#62 0x000055bbf25cedb3 llvm::Expected<llvm::SmallVector<llvm::StringRef, 3u>>::takeError() /usr/lib/llvm/16/include/llvm/Support/Error.h:601:77
#63 0x000055bbf25cedb3 main /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:1422:39
#64 0x00007fe332169d4e __libc_start_call_main /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#65 0x00007fe332169e09 call_init /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/csu/../csu/libc-start.c:128:20
#66 0x00007fe332169e09 __libc_start_main /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/csu/../csu/libc-start.c:347:5
#67 0x000055bbf25cf445 _start (/usr/lib/llvm/16/bin/clang-linker-wrapper+0xe445)
#0 0x00007fe33387d8a1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/Unix/Signals.inc:567:22
#1 0x00007fe33387aa0b std::atomic<CallbackAndCookie::Status>::store(CallbackAndCookie::Status, std::memory_order) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/atomic:279:16
#2 0x00007fe33387aa0b llvm::sys::RunSignalHandlers() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/Signals.cpp:106:21
#3 0x00007fe33387aa0b SignalHandler /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/Unix/Signals.inc:402:31
#4 0x00007fe33217f5e0 (/lib64/libc.so.6+0x395e0)
#5 0x00007fe3321d05ac __pthread_kill_implementation /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/nptl/pthread_kill.c:44:76
#6 0x00007fe33217f536 raise /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/signal/../sysdeps/posix/raise.c:27:6
#7 0x00007fe332168875 abort /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/stdlib/abort.c:81:7
#8 0x00007fe333249e52 llvm::raw_pwrite_stream::~raw_pwrite_stream() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/Support/raw_ostream.h:428:7
#9 0x00007fe333249e52 llvm::raw_svector_ostream::~raw_svector_ostream() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/Support/raw_ostream.h:692:3
#10 0x00007fe333249e52 llvm::report_fatal_error(llvm::Twine const&, bool) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/ErrorHandling.cpp:115:3
#11 0x00007fe333777725 llvm::report_fatal_error(char const*, bool) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Support/ErrorHandling.cpp:83:21
#12 0x00007fe3362b0d1a llvm::SITargetLowering::LowerCall(llvm::TargetLowering::CallLoweringInfo&, llvm::SmallVectorImpl<llvm::SDValue>&) const /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:3118:0
#13 0x00007fe33430daf9 llvm::TargetLowering::LowerCallTo(llvm::TargetLowering::CallLoweringInfo&) const /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10168:13
#14 0x00007fe334434e84 llvm::SmallVectorTemplateCommon<llvm::SDValue, void>::begin() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/ADT/SmallVector.h:270:45
#15 0x00007fe334434e84 llvm::SmallVectorTemplateCommon<llvm::SDValue, void>::end() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/ADT/SmallVector.h:272:32
#16 0x00007fe334434e84 llvm::SmallVector<llvm::SDValue, 4u>::~SmallVector() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/ADT/SmallVector.h:1206:24
#17 0x00007fe334434e84 llvm::TargetLowering::CallLoweringInfo::~CallLoweringInfo() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/CodeGen/TargetLowering.h:4170:10
#18 0x00007fe334434e84 llvm::TargetLowering::makeLibCall(llvm::SelectionDAG&, llvm::RTLIB::Libcall, llvm::EVT, llvm::ArrayRef<llvm::SDValue>, llvm::TargetLowering::MakeLibCallOptions, llvm::SDLoc const&, llvm::SDValue) const /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:195:1
#19 0x00007fe334301779 llvm::TrackingMDRef::untrack() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/TrackingMDRef.h:89:9
#20 0x00007fe334301779 llvm::TrackingMDRef::~TrackingMDRef() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/TrackingMDRef.h:55:29
#21 0x00007fe334301779 llvm::TypedTrackingMDRef<llvm::MDNode>::~TypedTrackingMDRef() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/TrackingMDRef.h:106:26
#22 0x00007fe334301779 llvm::DebugLoc::~DebugLoc() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/IR/DebugLoc.h:33:9
#23 0x00007fe334301779 llvm::SDLoc::~SDLoc() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1106:7
#24 0x00007fe334301779 llvm::SelectionDAGBuilder::visitSPDescriptorFailure(llvm::StackProtectorDescriptor&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:2807:61
#25 0x00007fe3343c8368 llvm::SelectionDAGISel::FinishBasicBlock() /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1727:22
#26 0x00007fe3343ca9d2 std::__uniq_ptr_impl<llvm::FunctionLoweringInfo, std::default_delete<llvm::FunctionLoweringInfo>>::_M_ptr() const /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:199:67
#27 0x00007fe3343ca9d2 std::unique_ptr<llvm::FunctionLoweringInfo, std::default_delete<llvm::FunctionLoweringInfo>>::get() const /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:470:27
#28 0x00007fe3343ca9d2 std::unique_ptr<llvm::FunctionLoweringInfo, std::default_delete<llvm::FunctionLoweringInfo>>::operator->() const /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:463:12
#29 0x00007fe3343ca9d2 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1645:13
#30 0x00007fe3343cd821 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:481:22
#31 0x00007fe333d7a891 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:33
#32 0x00007fe333a17a69 llvm::FPPassManager::runOnFunction(llvm::Function&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/IR/LegacyPassManager.cpp:1430:40
#33 0x00007fe3353445d9 RunPassOnSCC /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Analysis/CallGraphSCCPass.cpp:179:17
#34 0x00007fe3353445d9 RunAllPassesOnSCC /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Analysis/CallGraphSCCPass.cpp:469:21
#35 0x00007fe3353445d9 runOnModule /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/Analysis/CallGraphSCCPass.cpp:534:35
#36 0x00007fe333a18689 runOnModule /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/IR/LegacyPassManager.cpp:1552:7
#37 0x00007fe333a18689 llvm::legacy::PassManagerImpl::run(llvm::Module&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/IR/LegacyPassManager.cpp:535:55
#38 0x00007fe33569db30 codegen /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTOBackend.cpp:415:3
#39 0x00007fe33569e242 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#40 0x00007fe33569e242 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#41 0x00007fe33569e242 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&) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTOBackend.cpp:512:12
#42 0x00007fe335692329 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#43 0x00007fe335692329 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#44 0x00007fe335692329 llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTO.cpp:1179:70
#45 0x00007fe335692a12 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#46 0x00007fe335692a12 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#47 0x00007fe335692a12 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&)>) /usr/src/debug/sys-devel/llvm-16.0.1/llvm/lib/LTO/LTO.cpp:1074:41
#48 0x000055bbf25df483 std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:243:11
#49 0x000055bbf25df483 std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>::~function() /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/std_function.h:334:11
#50 0x000055bbf25df483 (anonymous namespace)::linkBitcodeFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::SmallVectorImpl<llvm::StringRef>&, llvm::opt::ArgList const&) (.constprop.0) /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:740:44
#51 0x000055bbf25e29f6 llvm::Error::getPtr() const /usr/lib/llvm/16/include/llvm/Support/Error.h:275:12
#52 0x000055bbf25e29f6 llvm::Error::operator bool() /usr/lib/llvm/16/include/llvm/Support/Error.h:235:22
#53 0x000055bbf25e29f6 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 /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:1025:5
#54 0x000055bbf25e6d52 parallelTransformReduce<llvm::SmallVector<llvm::object::OffloadFile>*, LLVMOpaqueError*, llvm::parallelForEachError<SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)> >(SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)>)::<lambda(LLVMErrorRef, LLVMErrorRef)>, llvm::parallelForEachError<SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)> >(SmallVector<SmallVector<object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)>)::<lambda(auto:33&&)> > /usr/lib/llvm/16/include/llvm/Support/Parallel.h:249:18
#55 0x000055bbf25e6d52 parallelForEachError<llvm::SmallVector<llvm::SmallVector<llvm::object::OffloadFile> >&, (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, const llvm::opt::InputArgList&, char**, int)::<lambda(auto:34&)> > /usr/lib/llvm/16/include/llvm/Support/Parallel.h:287:47
#56 0x000055bbf25e6d52 (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int) /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:1069:4
#57 0x000055bbf25cedb3 std::_Tuple_impl<0ul, llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>::_Tuple_impl(std::_Tuple_impl<0ul, llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/tuple:302:7
#58 0x000055bbf25cedb3 std::tuple<llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>::tuple(std::tuple<llvm::ErrorInfoBase*, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/tuple:1351:17
#59 0x000055bbf25cedb3 std::__uniq_ptr_impl<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>::__uniq_ptr_impl(std::__uniq_ptr_impl<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:185:9
#60 0x000055bbf25cedb3 std::__uniq_ptr_data<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>, true, true>::__uniq_ptr_data(std::__uniq_ptr_data<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>, true, true>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:242:7
#61 0x000055bbf25cedb3 std::unique_ptr<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>::unique_ptr(std::unique_ptr<llvm::ErrorInfoBase, std::default_delete<llvm::ErrorInfoBase>>&&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:366:7
#62 0x000055bbf25cedb3 llvm::Expected<llvm::SmallVector<llvm::StringRef, 3u>>::takeError() /usr/lib/llvm/16/include/llvm/Support/Error.h:601:77
#63 0x000055bbf25cedb3 main /var/tmp/portage/sys-devel/clang-16.0.1/work/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:1422:39
#64 0x00007fe332169d4e __libc_start_call_main /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#65 0x00007fe332169e09 call_init /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/csu/../csu/libc-start.c:128:20
#66 0x00007fe332169e09 __libc_start_main /usr/src/debug/sys-libs/glibc-2.37-r1/glibc-2.37/csu/../csu/libc-start.c:347:5
#67 0x000055bbf25cf445 _start (/usr/lib/llvm/16/bin/clang-linker-wrapper+0xe445)
clang-16: error: unable to execute command: Aborted
clang-16: error: linker command failed due to signal (use -v to see invocation)
@llvm/issue-subscribers-openmp
I can't reproduce this. Looking through the trace this looks like it was trying to use stack protectors on the GPU, which isn't really implemented or supported. It's also not the default behavior. I wouldn't expect -fstack-protector on your general compile command to be implied for the device compile. I do see the ssp attribute added by it in the offload IR, but it seems to not do anything? Not sure exactly how all the stack protector machinery is supposed to work.
There seems to be a lot of confusing stuff going on in StackProtector. It seems to only do anything depending on very specific properties of the allocas that happen to reach the backend.
The pass also will not tolerate non-0 address space allocas, seems like it's going to be a fair bit of work to do anything with this. I think the driver should just not pass on the SSP request to the device compile
I don't think the 16 release can be patched anymore. Can you try with a build off of the main
branch? I also cannot reproduce.
I can't reproduce this. Looking through the trace this looks like it was trying to use stack protectors on the GPU, which isn't really implemented or supported. It's also not the default behavior. I wouldn't expect -fstack-protector on your general compile command to be implied for the device compile. I do see the ssp attribute added by it in the offload IR, but it seems to not do anything? Not sure exactly how all the stack protector machinery is supposed to work
Thank you for reminding the -fstack-protector. Gentoo put -fstack-protector-strong
into the default compiler option. With -fno-stack-protector
the error is gone.
I can't reproduce this. Looking through the trace this looks like it was trying to use stack protectors on the GPU, which isn't really implemented or supported. It's also not the default behavior. I wouldn't expect -fstack-protector on your general compile command to be implied for the device compile. I do see the ssp attribute added by it in the offload IR, but it seems to not do anything? Not sure exactly how all the stack protector machinery is supposed to work Thank you for reminding the -fstack-protector. Gentoo put
-fstack-protector-strong
into the default compiler option. With-fno-stack-protector
the error is gone.
So, is it safe to close this issue? You can still get the same host behavior if you use -Xarch-device -fno-stack-protector-strong
or just -Xarch_host -fstack-protector-strong
.
So, is it safe to close this issue? You can still get the same host behavior if you use
-Xarch-device -fno-stack-protector-strong
or just-Xarch_host -fstack-protector-strong
.
What's the general policy for random compiler flags applying to host and device? I wouldn't expect the driver to pass along an unsupported option to the offload compile
So, is it safe to close this issue? You can still get the same host behavior if you use
-Xarch-device -fno-stack-protector-strong
or just-Xarch_host -fstack-protector-strong
.What's the general policy for random compiler flags applying to host and device? I wouldn't expect the driver to pass along an unsupported option to the offload compile
I don't think there's a policy, we pretty much just pass everything to both ends and rely on the user to turn off the ones that don't work. Ideally we make things as similar as possible, but for example, doing -fsanitize=address
doesn't work but -Xarch_host -fsanitize=address
does. We could maybe have a list of "things that are definition not supported for OpenMP offloading so don't forward them" but that would be hard to maintain and could go against the user's wishes if they truly, indeed wanted to compile for something unsupported by the runtime.
Thank you for reminding the -fstack-protector. Gentoo put
-fstack-protector-strong
into the default compiler option. With-fno-stack-protector
the error is gone.
Good catch indeed, I had never though about it. This might have saved you guys a precious time. I apologize, but at least now it is documented.
Until the stack-protector issue will cease to annoy us, it would be very kind to add the precision in a Gentoo knowledge base. I will revisit the issue with all information put there.
On my Gentoo Linux machine, if I try to compile a code example that offloads OpenMP to an AMD GPU:
The sample code somes from a public AMD presentation slide and can be directly downloaded here => https://bugs.gentoo.org/attachment.cgi?id=859874
EDIT: Rebuilt Clang with debugging symbol to have a more verbose crash trace.