Issue 129027
Summary [Backend][X86] Fatal error: Cannot emit physreg copy instruction (Clang 18.1.8, i9-13900K, Ubuntu 22)
Labels clang
Assignees
Reporter yshekel
    When compiling my code with Clang 18.1.8 on Ubuntu 22.04 targeting Intel i9-13900K (x86_64), the compiler crashes with the following fatal error:

`fatal error: error in backend: Cannot emit physreg copy instruction`

I attached (archived) the source and associated run script.

Here is the stack trace: 

Stack dump:
0.      Program arguments: /usr/bin/clang++ -O3 -std=gnu++17 -fPIE -DRING=greyhound -DRING_ID=2002 -I/home/administrator/users/yuvals/icicle/icicle/include -I/home/administrator/users/yuvals/icicle/build/_deps/taskflow-src -isystem /home/administrator/users/yuvals/icicle/build/_deps/googletest-src/googletest/include -isystem /home/administrator/users/yuvals/icicle/build/_deps/googletest-src/googletest -DNDEBUG -c -MD -MT tests/CMakeFiles/test_ring_api.dir/test_ring_api.cpp.o -MF CMakeFiles/test_ring_api.dir/test_ring_api.cpp.o.d -fcolor-diagnostics -o CMakeFiles/test_ring_api.dir/test_ring_api.cpp.o /home/administrator/users/yuvals/icicle/icicle/tests/test_ring_api.cpp
1. <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/home/administrator/users/yuvals/icicle/icicle/tests/test_ring_api.cpp'.
4. Running pass 'Post-RA pseudo instruction expansion pass' on function '@_ZN28RingTest_RingSanityTest_TestI11IntegerRingIN9greyhound9zq_configEEE8TestBodyEv'
 #0 0x00007815e2394716 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xd94716)
 #1 0x00007815e23926d0 llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xd926d0)
 #2 0x00007815e22e3fee (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xce3fee)
 #3 0x00007815e22e3fab (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xce3fab)
 #4 0x00007815e238ef87 llvm::sys::Process::Exit(int, bool) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xd8ef87)
 #5 0x000064999feb6133 (/usr/bin/clang+++0x13133)
 #6 0x00007815e22f1832 llvm::report_fatal_error(llvm::Twine const&, bool) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xcf1832)
 #7 0x00007815e22f1716 (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xcf1716)
 #8 0x00007815e51e9f60 (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0x3be9f60)
 #9 0x00007815e2951d29 llvm::TargetInstrInfo::lowerCopy(llvm::MachineInstr*, llvm::TargetRegisterInfo const*) const (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0x1351d29)
#10 0x00007815e2661189 (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0x1061189)
#11 0x00007815e2755024 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0x1155024)
#12 0x00007815e24db04f llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xedb04f)
#13 0x00007815e24e0943 llvm::FPPassManager::runOnModule(llvm::Module&) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xee0943)
#14 0x00007815e24db744 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xedb744)
#15 0x00007815ea9c045e 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*) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x1bc045e)
#16 0x00007815ead4f602 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x1f4f602)
#17 0x00007815e997ffc6 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0xb7ffc6)
#18 0x00007815eb7b0d25 clang::FrontendAction::Execute() (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x29b0d25)
#19 0x00007815eb72a2f4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x292a2f4)
#20 0x00007815eb82b4ce clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x2a2b4ce)
#21 0x000064999feb5d55 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang+++0x12d55)
#22 0x000064999feb3155 (/usr/bin/clang+++0x10155)
#23 0x00007815eb3e2659 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x25e2659)
#24 0x00007815e22e3f8c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib/x86_64-linux-gnu/libLLVM-18.so.18.1+0xce3f8c)
#25 0x00007815eb3e1fee clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x25e1fee)
#26 0x00007815eb3aa561 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x25aa561)
#27 0x00007815eb3aa7ae clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&, bool) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x25aa7ae)
#28 0x00007815eb3c6dbd clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18.1+0x25c6dbd)
#29 0x000064999feb2ac4 clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/clang+++0xfac4)
#30 0x000064999febfbf6 main (/usr/bin/clang+++0x1cbf6)
#31 0x00007815e0e29d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#32 0x00007815e0e29e40 call_init ./csu/../csu/libc-start.c:128:20
#33 0x00007815e0e29e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#34 0x000064999feafbc5 _start (/usr/bin/clang+++0xcbc5)
clang++: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Ubuntu clang version 18.1.8 (++20240731024944+3b5b5c1ec4a3-1~exp1~20240731145000.144)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/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/test_ring_api-70f143.cpp
clang++: note: diagnostic msg: /tmp/test_ring_api-70f143.sh
clang++: note: diagnostic msg: 

********************

Thanks!

[Archive.zip](https://github.com/user-attachments/files/19006332/Archive.zip)
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to