<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/126731>126731</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
eBPF/atomic: error in backend: Cannot select... AtomicStore...
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
richiejp
</td>
</tr>
</table>
<pre>
I added `__atomic_store_n` to an eBPF program and the following happened:
```
clang: warning: argument unused during compilation: '--gcc-toolchain=/nix/store/l89iqc7am6i60y8vk507zwrzxf0wcd3v-gcc-14-20241116' [-Wunused-command-line-argument]
fatal error: error in backend: Cannot select: 0x5583e0: ch = AtomicStore<(store monotonic (s64) into %ir.87)> 0x5580d0:1, Constant:i64<0>, 0x557ea0, ./counter.c:256:5 @[ ./counter.c:295:3 @[ ./counter.c:303:3 ] ]
0x6dacd0: i64 = Constant<0>
0x557ea0: i64 = add nuw 0x557960, Constant:i64<16>, ./counter.c:256:28 @[ ./counter.c:295:3 @[ ./counter.c:303:3 ] ]
0x557960: i64,ch = CopyFromReg 0x556608, Register:i64 %7, ./counter.c:254:5 @[ ./counter.c:295:3 @[ ./counter.c:303:3 ] ]
0x6db210: i64 = Register %7
0x6db520: i64 = Constant<16>
In function: xdp_count_packets
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin/clang @/tmp/nix-shell.ZW3Re7/cc-params.DwnvVk
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module '/home/rich/go/src/github.com/dkorunic/pktstat-bpf/counter.c'.
4. Running pass 'BPF DAG->DAG Pattern Instruction Selection' on function '@xdp_count_packets'
#0 0x00007fffeafee01c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0xfee01c)
#1 0x00007fffeafebd74 llvm::sys::CleanupOnSignal(unsigned long) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0xfebd74)
#2 0x00007fffeaedfc22 llvm::CrashRecoveryContext::HandleExit(int) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0xedfc22)
#3 0x00007fffeafe25ce llvm::sys::Process::Exit(int, bool) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0xfe25ce)
#4 0x00000000004120e6 LLVMErrorHandler(void*, char const*, bool) (/nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin/clang+0x4120e6)
#5 0x00007fffeaef7bad llvm::report_fatal_error(llvm::Twine const&, bool) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0xef7bad)
#6 0x00007fffebc36c1c llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x1c36c1c)
#7 0x00007fffebc3bc76 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x1c3bc76)
#8 0x00007fffebc32d59 llvm::SelectionDAGISel::DoInstructionSelection() (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x1c32d59)
#9 0x00007fffebc3f112 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x1c3f112)
#10 0x00007fffebc41c2a llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x1c41c2a)
#11 0x00007fffebc44085 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x1c44085)
#12 0x00007fffebc32899 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x1c32899)
#13 0x00007fffeb56c9c9 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x156c9c9)
#14 0x00007fffeb1b3a61 llvm::FPPassManager::runOnFunction(llvm::Function&) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x11b3a61)
#15 0x00007fffeb1b3e1c llvm::FPPassManager::runOnModule(llvm::Module&) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x11b3e1c)
#16 0x00007fffeb1b597b llvm::legacy::PassManagerImpl::run(llvm::Module&) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0x11b597b)
#17 0x00007ffff584c0f6 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x224c0f6)
#18 0x00007ffff5d22f93 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x2722f93)
#19 0x00007ffff42c290c clang::ParseAST(clang::Sema&, bool, bool) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0xcc290c)
#20 0x00007ffff67dcde9 clang::FrontendAction::Execute() (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x31dcde9)
#21 0x00007ffff6752b4b clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x3152b4b)
#22 0x00007ffff6872896 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x3272896)
#23 0x0000000000413f42 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin/clang+0x413f42)
#24 0x000000000040d883 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) (/nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin/clang+0x40d883)
#25 0x00007ffff634e5f9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x2d4e5f9)
#26 0x00007fffeaedfb13 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/nix/store/mgdrglr25yp24y82z4kcfbm9lszsx6q5-llvm-19.1.5-lib/lib/libLLVM.so.19.1+0xedfb13)
#27 0x00007ffff634f0a5 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x2d4f0a5)
#28 0x00007ffff6310fc9 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x2d10fc9)
#29 0x00007ffff6311a6e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x2d11a6e)
#30 0x00007ffff632559c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/nix/store/isxsfmzsxsh1xa3lyh66zkv8w0qziai8-clang-19.1.5-lib/lib/libclang-cpp.so.19.1+0x2d2559c)
#31 0x0000000000410f1a clang_main(int, char**, llvm::ToolContext const&) (/nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin/clang+0x410f1a)
#32 0x000000000040d244 main (/nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin/clang+0x40d244)
#33 0x00007fffe982a1fc __libc_start_call_main (/nix/store/65h17wjrrlsj2rj540igylrx7fqcd6vq-glibc-2.40-36/lib/libc.so.6+0x2a1fc)
#34 0x00007fffe982a2b9 __libc_start_main@GLIBC_2.2.5 (/nix/store/65h17wjrrlsj2rj540igylrx7fqcd6vq-glibc-2.40-36/lib/libc.so.6+0x2a2b9)
#35 0x000000000040d2a5 _start (/nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin/clang+0x40d2a5)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 19.1.5
Target: bpfeb
Thread model: posix
InstalledDir: /nix/store/wrkvgny73b9lbjbkvm21k34kqnj4qsrn-clang-19.1.5/bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/nix-shell.ZW3Re7/counter-4ddef8.c
clang: note: diagnostic msg: /tmp/nix-shell.ZW3Re7/counter-4ddef8.sh
clang: note: diagnostic msg:
********************
Error: compile: exit status 1
exit status 1
gen.go:24: running "go": exit status 1
```
Source and run script:
[clang-logs.tar.gz](https://github.com/user-attachments/files/18751118/clang-logs.tar.gz)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWttu4ziTfhrmhrAhUQdLF7lQ7DidH-lJkGRmsHtjUBQlsyORCkk5Tp5-Qcq2Djn1bHc8C-wgmLZJivq-qmId6MJKsYJTegqCMxAsTnCj10KeSkbWjP6oT1KRPZ9eQpxlNIMgdFYrrEXFyEppIemKg9CBWkDMIT27WcJaikLiCmKeQb2mMBdlKZ4YL-Aa1zXlNANeAhz7Fzq7PychJeYF8BL4hCVn7Ucsi6aiXMOGN4pmMGuk2YeIqmYl1kxwswqg2WRSEDLRQpRkjRkH3gKgJWdbgJYWJEDLMorZI5nhKmSh8xxtHgJn9vIkX7a580Qyb2N3cP0JcpDvum4I0AyC4Gzyd_vuCRFVhXk2KRmnkz0wECyAk-RY4xJSKYU0eOwHyDhMMXmg3NCFc8y50FDRkhJtBpxtEEQedcxnsobAW8DESvXO4vXmAEUWOqwEF1pwRqAZCn2AYsi4FhCggMlpNAMoBt55u6OTmR1dgOZwLrjSmJu3sdAH3twB3rmZMAtnFDvm8xSgJREN11ROCfASFITASwIIfAcEZ6-n4wB4iffetOd47XSwgK1oIHS2YYaJhQVZ6FumHbQWVLtuh6q3DmcZ5M1TOxeHzpu03HDH620uKPqNZGAHpYUJ0Hynvbmon5dSVLe0sIvC0IkMqltaMKWpbPEapc3eBuv_ZsG3aMMsRe5AqHtALZQ9qzBLA_SekloRO8klh3nDyf7gbbN6ZVGsamPpWgEnubk6T-7OoWrSimmIYdoUUNJaSG18xFrrWpnjj5YALQum1006JaIy57Pc7P-Z1FL8MOcELZlSDVUALa07YZyUTUatWyESq7U9YlpiQo1Ma0lrKQhVxlco0ch22DyJlRKEYU0zKBsOFZGs1lPgJHcakweYNVXdeiVnCpz4Zu_CdsdctW5m5FGe5MOm4M8zL43L9Ef6sKmQ--D5D4_8h_-oJJ9YlzZx46k7DQBapowbtZlBq0e01FXd7jpRa1qW0__-27ulM7OITGoscaWmiye--esBOIlrgAFvTkVuTnuNpaISYg0pz6DIYc5KCpwEmWVzkVFYUE5l6ySdxDPDtw03nhXWWCnjNZc7XcIbM_Adc1xQafye4LASWVNSswqg5VpUhrCJCEZtwghBkrEGswchG87MeP2glcZ6ktb5wFLRzMjcfwuMCR2L5GICvPNFcgFvsNZUcnjJlZZNC_POek9DqMW4t0WL0ndemyOy9g2Q50Bn6ziOM8vznOKcUscl0FqclwAvUc-q_XAjGdfWJO5bo4q6RRI_rYTSkuIKoNAYFuPaOGOAole2URWZLEqJguca-c8RevEfSJ5Wcale1DZ8DCbWzlvTmJQsNZa____V1V_fp0pMzSxAZ862xWvcfMvGHbFJs5n_Fpt5STFv6mt-xwqOS4CihttQn8FS8OJI2A26DjsaYKdZThDqYZ-bU31LidhQ-TwXXNOtbme-YZ6V9HzLNEDRsSTf4uvQeyPJo4DQt-3IuqH2Sx_zHKZClEeSvEHXYfd32Nv_fBc5NITmqXOTr7TilQBFG8EygBKDlayxhMTEgd3AR-B_wR1avC2iDm8wtJR8luKsJ-s2qKxs7rVqc6_-ab1_YpzusYdHFXwLtSMS9omkxAvJwPkcvNoiubi8o-XuINiE8b-obqcH3O4Wf4iMWpUcgY7bIu74zEZ8UjILP-XTjprANBdVZVz424Tm8OCjXlnfYeZYx99tyXXUoxF1lAXxp9QXohfEejEsOhYHg7LjEI845K6LPjdHkdELyhOenVdML5KLI8I3AFv4JvY5Q_i-SxD-SetLyvIMK0bOSkEe1MACD6lQ5zGOQs7C78i5I3K-EwWfkpMNv-bfMVkzTvc8BuRezR2NncHfsUPj0xPFH52eK1pg8vx_naNl0XEcZAhpEJKY9DmOYJrEu0fwTWavKU1rLPXUOQ7BlkJH0B8QdFMPh26P4PLGcNrXEv-Y2heTaeF2ZIIxGToIze-R-W6Lo6H97YaOR4TuY7IhEo6IBPEs7REpe0epR-myqjsf8u_SMYA7Ov0UIw8inzh5CPc3hCalrpg-a2_XrhtdNyY_6k0vGC64UJoRdc4LxukuBewt-UZxRuUdxZKsr2tjhGqQLfaW7mLfJ6vusSyo_mTRFebFW0t6TlBLxotbmg-H9_pIRhvuhJDsjlH_kUuuZaPYht7SfM71jZbAm3fTm3zneZaspHfPStNqd4-mdNbONJw9NnRVj540hXD9JJmmq3053HsoozluSr3KaEk1_eRB73z3zteU5oKrpjIVybtpLlNblVcvaqvW7hZ75fM6DF8eNtGT8_jCMIsGFcfYCNs5UtcDS0TI2lpnidHAEjOE8tj7CG2vVr2XmKv2mvpPzkYmmtzd78vb9w_ZVxCcWQodwX46mPuIoNghfYI3WCqa3N0P4d_RCg_qqo_rqy8gQizSAw_UzwvzcJaRjMZ9HktpxH04KrvKnJJG0w9y2S8A7rkWW4fcHSIPUOqnQ_9T1ayk8tLexxI6wL4_-dH7VI9qX55r8Xfs0IBdNENRPHTlLY-O5EYQ_JrTKyEc1S14yOLuWHmjyxQv9xEkxF1VmA0jaSIlfjb-3JsPC9qd4xsXuYfrl6-6ZTFQOyKjWyEniyIP7nUyd-_toe6X6hUuy78o0WKXPbzBahTSzB47X_dpefXL9CyBjl4wsD7Pp0EeWxH38O2vkVfSasnOti7BxiezhOCyTDF5WOXcMO7MMpNss_f687k7b38kHHuXN63hEDGFTQhwOYiVXR5wiJGHB1Yrst26bvslNRWtiaf2N1OrjcFiM7DSEjOt9tOj7XBZmiMnZG_eLOnd-FlzbHVnHwFoVuIqzbD9fWAvKhR9dK38FcEsswrt1B2Ob5dT1_up2-Xbht_hnJbPA219bBlHuoBO3Z49z0b2nDs4gP-f7fEn6uGvMTwj-U4v0VAvrpOT-F29DNoXBiHQKmsQ90YPmgXvFRcfLE1Gd-AH0R1HWFYcnbDikbBcHNJ_Kqz_iFS9L6n_iPSKKf1ejfUqhh1sr8bMmN3ut5qfFe7OQP9VERshHkTsDbNhDwVBTN6js-h9HmRjb6Rh76nmiCI-4iG3YuuE6o6SPid3cUtgn_btSVmnl-xc1r-UCVl4HXg0TvSQ70MD-6vyMOT73dsH16JxhLCbE7haGdmvlMZSr0yKtXoXTxis3dnTDylL9QPJH4HvsOK5lNtZ_kiycPM4KcxWEzT1nYkXDnRrdBq2CjVv7TD5Y0wojYeYrFZ95-Lq8my-QlM0Db4SHEo7H3n49bNTFw5gC-vLFLYPaIdWvENLW9u0ku_qSrjrhYM5ZiXN4BPTa0i3zBh1RuHMMQgbReFkA7WAilLIemXd4RVwQ6VigsMdKmd3iWbemNY5Tc3IWlKcwUpk9ucOWAvFtrYVSWlcljRbMPnbunN61LnQptCG2eEqEVbKzlgF_cKf7XzctUkl9_fJ_Bu8_3YOl9dXV9d_X_5xAZeXV-d38P7aDp_9eQFvz2-ub--B7U-6eavHKVLGi7zb53RYICm0qRXNINbtfj9D-KNGpba1Z-JnGc2jKfntO6r1z2vllxVzfrD39rbBngFj10pj3SjoAicZfy8onxYCeAnyzXK5a2sCCBUCIPTWFv221zurQqu7nsLaBtngrLXRUhRqqrGcFi8gWAAUfdBG1ygqJ1hrTNZt5xpa5qy0LXRuNAtc1432536wL4pPslMvi70Yn9BTd-bFKEKhh07Wp0GaOm6Qe05OaUzdII2wi1OcITdHNMvdE3aKHBQ4yHVd3_H8eDoLUYz9IKQoxsR3fOA7tMKsnJpQOBWyOLF9facuCmeee1LilJZq334sT22BlDaFAr5TMqVV95xmuqSn9OzGEG_bkH-q5XY6nfb7a6fT6Ukjy9P_fT_iDvrmFP1PAAAA__8OsNxz">