<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/155558>155558</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang 20.1.8: crash in optimizer (X86 DAG->DAG Instruction Selection, Function Pass Manager)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
adrianimboden
</td>
</tr>
</table>
<pre>
I was not able to produce a reproducer. If you can give me a hint, I will gladly try some stuff.
I built clang from source, so I can try out patches quite quickly.
```
clang -c '-fthinlto-index=xxx.bc' -o xxx.o -x ir xxx.o -glldb -Weverything -Werror -Wno-missing-include-dirs -Wno-switch-default -Wno-shadow-uncaptured-local -Wno-used-but-marked-unused -Wno-thread-safety-negative -Wno-ctad-maybe-unsupported -Wno-user-defined-warnings -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++20-compat -Wno-padded -Wno-weak-vtables -Wno-weak-template-vtables -Wno-global-constructors -Wno-exit-time-destructors -Wno-undefined-func-template -Wno-newline-eof -Wno-zero-as-null-pointer-constant -Wno-gnu-zero-variadic-macro-arguments -Wno-unneeded-internal-declaration -Wno-reserved-identifier -fprofile-instr-generate -fcoverage-mapping -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -Wno-unused-command-line-argument)
# Configuration: 83898418efc6a4d31c665d5bc28e0086e73b13fe3a164588886bf5f25e136a3e
# Execution platform: @@local_config_platform//:host
Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
fatal error: error in backend: Do not know how to promote this operator!
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: /usr/bin/clang -c -fthinlto-index=xxx.bc -o xxx.o -x ir xxx.o -glldb -Weverything -Werror -Wno-missing-include-dirs -Wno-switch-default -Wno-shadow-uncaptured-local -Wno-used-but-marked-unused -Wno-thread-safety-negative -Wno-ctad-maybe-unsupported -Wno-user-defined-warnings -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++20-compat -Wno-padded -Wno-weak-vtables -Wno-weak-template-vtables -Wno-global-constructors -Wno-exit-time-destructors -Wno-undefined-func-template -Wno-newline-eof -Wno-zero-as-null-pointer-constant -Wno-gnu-zero-variadic-macro-arguments -Wno-unneeded-internal-declaration -Wno-reserved-identifier -fprofile-instr-generate -fcoverage-mapping -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -Wno-unused-command-line-argument
1. Running pass 'Function Pass Manager' on module 'bazel-out/k8-fastbuild/bin/backend/src/libs/startup/_objs/lib/Startup.o'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_ZZZ18run_freerunning_onIZZ9wrap_mainIN3ptr6sharedI6WorkerEEEiNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE14UniqueFunctionIFT_R14AsioControllerEESC_IF4taskIiESD_NS2_I5StatsEEP18ApplicationObjectsPNS5_6atomicIbEEEENS5_6vectorISB_NS9_ISB_EEEEENKUlSC_IFvNS5_8functionIFvvEEENSW_IFvbEEEEEE_clES12_EUlvE_EvP7ReactorOSD_ENUlvE_clEvENUlS14_E_clES14_'
#0 0x000061cc90a47088 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/bin/clang+0x379b088)
#1 0x000061cc90a443ce llvm::sys::RunSignalHandlers() (/usr/bin/clang+0x37983ce)
#2 0x000061cc909a752e (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) (.llvm.11083083495194237746) CrashRecoveryContext.cpp:0:0
#3 0x000061cc909a74eb (/usr/bin/clang+0x36fb4eb)
#4 0x000061cc90a40d3b (/usr/bin/clang+0x3794d3b)
#5 0x000061cc8f468d01 (/usr/bin/clang+0x21bcd01)
#6 0x000061cc909acc87 llvm::report_fatal_error(llvm::Twine const&, bool) (/usr/bin/clang+0x3700c87)
#7 0x000061cc909acb56 (/usr/bin/clang+0x3700b56)
#8 0x000061cc91ef251a (/usr/bin/clang+0x4c4651a)
#9 0x000061cc91eef3cd llvm::SelectionDAG::LegalizeTypes() (/usr/bin/clang+0x4c433cd)
#10 0x000061cc91eba940 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/usr/bin/clang+0x4c0e940)
#11 0x000061cc91eb9a1f llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/usr/bin/clang+0x4c0da1f)
#12 0x000061cc91eb69c2 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/usr/bin/clang+0x4c0a9c2)
#13 0x000061cc91eb4364 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/usr/bin/clang+0x4c08364)
#14 0x000061cc8ff5f48c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/bin/clang+0x2cb348c)
#15 0x000061cc904c72ae llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/bin/clang+0x321b2ae)
#16 0x000061cc904d08e3 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/bin/clang+0x32248e3)
#17 0x000061cc904c8232 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/bin/clang+0x321c232)
#18 0x000061cc920479d5 codegen(llvm::lto::Config const&, llvm::TargetMachine*, std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex const&) LTOBackend.cpp:0:0
#19 0x000061cc92048b5f llvm::lto::thinBackend(llvm::lto::Config const&, unsigned int, std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, llvm::Module&, llvm::ModuleSummaryIndex const&, llvm::FunctionImporter::ImportMapTy const&, llvm::DenseMap<unsigned long, llvm::GlobalValueSummary*, llvm::DenseMapInfo<unsigned long, void>, llvm::detail::DenseMapPair<unsigned long, llvm::GlobalValueSummary*>> const&, llvm::MapVector<llvm::StringRef, llvm::BitcodeModule, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>, llvm::SmallVector<std::__2::pair<llvm::StringRef, llvm::BitcodeModule>, 0u>>*, bool, std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, std::__2::vector<unsigned char, std::__2::allocator<unsigned char>> const&)::$_1::operator()(llvm::Module&, llvm::TargetMachine*, std::__2::unique_ptr<llvm::ToolOutputFile, std::__2::default_delete<llvm::ToolOutputFile>>) const LTOBackend.cpp:0:0
#20 0x000061cc92048864 llvm::lto::thinBackend(llvm::lto::Config const&, unsigned int, std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, llvm::Module&, llvm::ModuleSummaryIndex const&, llvm::FunctionImporter::ImportMapTy const&, llvm::DenseMap<unsigned long, llvm::GlobalValueSummary*, llvm::DenseMapInfo<unsigned long, void>, llvm::detail::DenseMapPair<unsigned long, llvm::GlobalValueSummary*>> const&, llvm::MapVector<llvm::StringRef, llvm::BitcodeModule, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>, llvm::SmallVector<std::__2::pair<llvm::StringRef, llvm::BitcodeModule>, 0u>>*, bool, std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, std::__2::vector<unsigned char, std::__2::allocator<unsigned char>> const&) (/usr/bin/clang+0x4d9c864)
#21 0x000061cc91318bd0 clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__2::unique_ptr<llvm::raw_pwrite_stream, std::__2::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/usr/bin/clang+0x406cbd0)
#22 0x000061cc913388b9 clang::CodeGenAction::ExecuteAction() (/usr/bin/clang+0x408c8b9)
#23 0x000061cc918865ed clang::FrontendAction::Execute() (/usr/bin/clang+0x45da5ed)
#24 0x000061cc91795b80 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/bin/clang+0x44e9b80)
#25 0x000061cc9198ba5f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/bin/clang+0x46dfa5f)
#26 0x000061cc8f4682a3 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang+0x21bc2a3)
#27 0x000061cc8f464783 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#28 0x000061cc915e1d29 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__2::optional<llvm::StringRef>>, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char>>*, bool*) const::$_0>(long) Job.cpp:0:0
#29 0x000061cc909a74c8 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/bin/clang+0x36fb4c8)
#30 0x000061cc915e1684 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__2::optional<llvm::StringRef>>, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char>>*, bool*) const (/usr/bin/clang+0x4335684)
#31 0x000061cc9159b8c0 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/bin/clang+0x42ef8c0)
#32 0x000061cc915bda2c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__2::pair<int, clang::driver::Command const*>>&) (/usr/bin/clang+0x4311a2c)
#33 0x000061cc8f4636fc clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/clang+0x21b76fc)
#34 0x000061cc8f473c3a main (/usr/bin/clang+0x21c7c3a)
#35 0x0000768d0377a24a (/lib/x86_64-linux-gnu/libc.so.6+0x2724a)
#36 0x0000768d0377a305 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x27305)
#37 0x000061cc8f4561e1 _start (/usr/bin/clang+0x21aa1e1)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 20.1.8 (https://github.com/llvm/llvm-project.git 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW1lz47aW_jX0C4ouEtwf_CDbco9m0t2uVudmql9YIHgo4ZoEeAFQtvPrpwBSIqnFdmeWh0mnnJjGcs6Hs2MJUYptOMCNE9060f0V6fRWyBtSSkY4awpRAr8qRPl6s0LPRCEuNCJFDUgL1EpRdhQQQRKGb3mNVhV6FR2ihKMN2wFqzIAt49rBd2iFnlldo01NyvoVafmKlGgAKd1V1bXjLRxvsUJFx2qNaE34BlVSNEiJTlIw85VAK0vaTBWdRi3RdAsK_atjGsx_6VP9OlByYm_48RY9NZciBydupbeM11q4jJfw4gT3Ly8v1wV1cIJcgcwfArkviMn996auywK5f8AO5KuZvDF_SCkkcv_gwm2YUoxvXMZp3ZXglkyqvkc9M023bgkV6Wo9tG1JKZ7djlPS6k5C6daCkrrv7BSUbtFptyHyCUq346al79NbCaR0FalAv7ocNkQbCds-qknpNuS1ALfjqmtbIfV-XqdAGgiMQ-k-E8kZ3wz4qINvHXybpS4VTUv0-Va3hZJwzeisG3uzSS0pyz3HZyBP7k4bS1GTFg1NWxMN865NLQpSu1RwpWVHtdgLD16YdjVrwC3hqKvj-_VUHacHwn0nh-eacXBBVH3DnyCFS5TLu7p2W8G4BtnzI3xAv-FdP2xHJCMlo25DqJklN10DXB_4coASStfS4KR2S6A1kUQzwfshEhTInRlSAtesYiCRW7VSVKwGl5lFuhvgIC3eioodSLIBtyFt21uW5WMNwSxupDw0WoTGB6eNLZGkAQ1y1kpF0xBeulYc-6U4ODPegQN0J3jFNl2P3gkWKA3SLA39FCoak7AMfBrHURkVFKfgeWkMSVD4QQUB8eMwStM0jYsqqnAEfhCTAAa6yxegncVttFIJ2RjiTug5oWdtPaeWc37oxg_mJ1hshdK99_6uALmuIrwsxEteQtFtTNBRAGgHshDKhBalyAZUHyX0FtAwHBFeIgmaMD5rNpGlRFIIjSohkSW6YXzjeIuKaFIj69MGa-_cjKOC0CfgpWm7Fzb8PXHxjLbieQiBjdCA9JYpJFqjUyEd7Dve4vG35WK9RKorGqYRQQa_BOOWZuJW61Y5waJf-IbpbVdcU2EEUde7_S-3leKfQLWDH5hSHSgHP9i1DYHGLo5KorYWp5akD5OtDcgUlAkdY_Q0M4lSgjJiYoPsOFJUslabgLnWhD6hsmtaA8tbeNfI_vMoxUaSBh0cwaoSP3RKOvihYNzBD4foeim0_oqrv-Lq__-46i38wWm-ddwYA2qJUqbkeNjzezQNnwknG5Cm3hAcNaLsajCjCvIn1K7ojL8_pW5FlLYR6-Bn-2CEH5SkJkawwoQEpYnUXevgh1wU_1R9h4Mf1n37tXBwYlwcX58A-880RveLT64TLO8Xn9BqMBUDdQ012K8B50FmDk6c0Mt__Pjhp7LjeSUBZE83F3z140f2LEmbN4Tx1Zeg1TJWWyKhXMV_CPkEcrlcsi9rHeS57-OCKEZzpSXjmxX9so5y36dbInMtCdNqRZdL05iR2jizFtK0LJd--Dtn_-pgL9jVw_f8mx8uFBN3gmsp6towWt_lq4dQE_W0Ysv1ff5ljfNVtNZEq-Xy0U8XbVszao3sa2EirXo03GKiRcPoqjCsbMMOjJOs1rf5l3WWm99L2_cfv9eWx86MSqsDmt3OzvzDdFkqy2VO6-Xax_ny93q3zJe7x-QbEEP16_o-X36xrbRe7szn2g_zYUKYG3l7JuYGHvJePM_zYp_SzCNh4qUpsvkiWDjBQr2q_uNRMq5tQP_ep4R0HCTJcy6UlkAaB8cmLdjaPEMOTs-FdQffei9BkhVemvaVg0HiHyEJAwrnkHzr-JptOKn_jfCyBqksl3eZpYFBvWeGZ8wykkTY-EtKuOCvjegU4qQB1ZJ-kmV8Z7LiN7BR4NWYBLzoVdPWfW-Pxo5xcDpsTjpu90IlqoVBYkFemzVd-76XBl4ahFnkZyEOkiSMzYBzTK5pazKoZ__t8QfH-EMo3pZAXBUhFKMEwiNxe2XwDoUkC8tgQiGaUEirME5Lz3-TAvYLWnr-SCE-WgWlaTJReV_b5LaOyvs6amp2358ZB2Rzw2B2hRD1-6bgeTRNRhDJMYgiit-lUETxSCGdUvChwpFP3qQQ0jCOfDJSyOYUoApoORHEIW7eLz71Lb_BhtTsT_j-2sJHHCCkYRDQ8lCn-96cY0Gy0LvAcbWGwcbvRAmfgC94uWyYNmA-wtmDLPRGzv4R54z41buc-9ZFXd-a4H5bC_qkZsZwSIejPbyLqyR-NeLCR7jijOJ3ccmOf-WfCd0yfkgcM1wnfR8BRjKKR2DBEbAwiMM3gBnToK__m_DSIA5HeOEsDFRRFaYUXeRgqpUJtrOgfgINpkUQpnREE828OaQJJtMs8vBoAOyrpf85HAH2C0xgxDEPbWHppRB8AMdnW7nNVTQ0fQADDlMIRgzJkSxSk_dGwvXEUCZoxpQmO_5XkfgUBxMTnkVI7IVJVkaIihI2MGdRa7EPNWY3P4vuk8hP5Ab0YFkOXthzPF32nXmO-4996eQEd-PU5UsLVEPpBHenMzpbAOatlrM5d4RuoXxgNayHIuccu2HjmJdQg4a3CQTL_sdI8VAjDDXD5QSXmUnTquJkxkRDp83rrmmIfF2ZbfQsTP72_ettvw04qjSM6rIj1aVFNA3XB4WZvfbtfjPxQY0eL-RvpMP_ns6mAw_7lcYeJAzRpP_rM2m_v16Ydw9cwWfSOsHdUZk6HfXJ7vj_Qepuj2Xwt1NCK16Jc8R2gpUnqy5BE1bPCTwSJv8Kml4N51f5mbT_sButmTLXdnP4Dar54FumTVDaa-SCtC6QuWwDRwK6MP9nxfQRGL2NziiuG1LXB5GcukD7JvVLsuq5eN2e42Isx_9Wbn3Ke7cX9YEY3RJ5fuzhROJk-LGJD1tSB4e533-OR8V2T30hb_98Fr0g-O9C1F873XbayO6nxX40fbCarF_hmwkJe8cJKZ2Vw78S0q-E9Csh_UpIvxLS_21CevvQoMxoOjk0wPNDoMBPi9Lr32f0jKFhegjefZpwcDrpvhNNy2qQK3svRPfBajbCHlV9bY1W1YkXXrChvaMtjqgNUBbDccB0yopr2Sm2g29Q3XH9eGQPu2o47rAafVUamouauWBSkjzn7bNkGnL112zqlMLBD08XeSe46hqQVgrvqNWLaVGOZ3t4foYWBGlaZGe0MshxcDKgnYa9aN8_T_RSmhbZyHN-PJamcWRsdOT5IAXXo_KmTD_CLipJBOPBKZ6dm_tJFhWph94yzbOrvIzvA84UQlakE6nPzrz8LC1IVE0hDcxHZDvRX1C951TvG0BcViQaD1FxfHwngEmAKPXt1d2sDFtISV6NAwZ3JqDsQ8lib5eztn02eh8R9guKyXgIhpMjRGGS7l-TwN2d_92mhPRsOupPws7AOy6khaiHq5pZRCwl24E8U8LOLwwi8Euc2QVOiO4zUi6tjGzvUNsb5zVDKKnrgtCnvDJ5a6LJnvGg1Tv_rr9aPjb9s7o4jSvChlBSX8jBh0hyOnN6ETvI8fzAye3sftwlmtOMNCaiWX5fHDYS4ybJs4PS_TXcv4vijFqyk0s1Or0LPXc11_d86_iaVFC_zqT6tgbfO0KNqyKk6cGO5xe1xmbiNES_dH6i87fjVRBEcTrWIfNLZz_KipR6F6Vq4yM5ySJ7Uc-C6dFEM2C2IfjY0MXRxeYHVoihSumYHOY33X5UlATTS9zvJ9-zpHEmW1ySzEmldRJPL5b4Q1H7UdEMVvB-vgx8n-Dxjmh2eW5SQhBXg0j2aWqPxFrv4mSDeSngv5OYkriaoJjfm4VJQAOCDP93yNCEBmQks0_-SZyWXpAkBIf7y-f-yc5LGudx6NaMdy_uhnd9B71W4jruSSY4nBCMjwkGXoTy3MzJ7bOgfALywywCLxpZHOXkKPbBRz3xdxZPiA_DA4K9mYwvLA_vu209hYYXVagirIYSPTO9RfDCtL14QolnN1QKkLvbvwJlk8rowALtQComOMLetX-dmlk_99TyesM0SpPKwzihRez5YUJwTHyAIqwKL4agiLwIMprgeFhbfzRn1jSItuNPXDzziYi9xXf7xhA1orS30agVir043sLWb3UN5T2TJy8rJ3LjwmwTFqhkZMOF0oyiRtmepX0vObx8s2-7zr3-TJWxeRdxMem3r90YbzutrqcP5q_Km6DMgoxcwY2fRDFOwjSIr7Y3vuf5XkZDyFKfRkVBSi-rsqyK0ooSLy6u2A32cOSlOPFiL_Hj65JGWZSlcVDEYZGGoRN60BBW9w9rhNxc2ZetN34URVF6VZMCamX_bwSMB1vCTnR_JW-slopuo5zQq5nSaiShma7hpjeAXvHWwuzDWMaRSZAN-xOkMYePvXi7Qxee7GVXnaxv_vrz3WGduxv8XwEAAP__YxN9VQ">