amyk added a comment.

In D125506#3528380 <https://reviews.llvm.org/D125506#3528380>, @nathanchance 
wrote:

> I bisected a crash when compiling the Linux kernel to this change.
>
> A reduced C reproducer:
>
>   enum {
>     OP_CB_GETATTR = 3,
>     OP_CB_RECALL,
>     OP_CB_RECALL_ANY = 8,
>     OP_CB_RECALL_SLOT = 10,
>     OP_CB_NOTIFY_LOCK = 13,
>     OP_CB_NOTIFY_DEVICEID,
>     OP_CB_OFFLOAD
>   } static callback_ops_0;
>   int preprocess_nfs42_op_op_nr, preprocess_nfs42_op_op;
>   void preprocess_nfs42_op() {
>     switch (preprocess_nfs42_op_op_nr)
>     case OP_CB_GETATTR:
>     case OP_CB_RECALL:
>     case OP_CB_RECALL_ANY:
>     case OP_CB_RECALL_SLOT:
>     case OP_CB_NOTIFY_DEVICEID:
>     case OP_CB_NOTIFY_LOCK:
>       preprocess_nfs42_op_op = preprocess_nfs42_op_op_nr;
>     if (preprocess_nfs42_op_op_nr == OP_CB_OFFLOAD)
>       preprocess_nfs42_op_op = callback_ops_0;
>   }
>
>
>
>   $ clang --version | head -1
>   ClangBuiltLinux clang version 15.0.0 (https://github.com/llvm/llvm-project 
> 559b8fc17ef6f5a65ccf9a11fce5f91c0a011b00)
>   
>   $ clang --target=powerpc64le-linux-gnu -O2 -Wall -Wextra -c -o /dev/null 
> callback_xdr.i
>
>
>
>   $ clang --version | head -1
>   ClangBuiltLinux clang version 15.0.0 (https://github.com/llvm/llvm-project 
> c35ca3a1c78f693b749ad11742350b7fc6c5cd89)
>   
>   $ clang --target=powerpc64le-linux-gnu -O2 -Wall -Wextra -c -o /dev/null 
> callback_xdr.i
>   Impossible reg-to-reg copy
>   UNREACHABLE executed at 
> /home/nathan/cbl/src/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:1861!
>   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: clang --target=powerpc64le-linux-gnu -O2 -Wall 
> -Wextra -c -o /dev/null callback_xdr.i
>   1.      <eof> parser at end of file
>   2.      Code generation
>   3.      Running pass 'Function Pass Manager' on module 'callback_xdr.i'.
>   4.      Running pass 'Post-RA pseudo instruction expansion pass' on 
> function '@preprocess_nfs42_op'
>    #0 0x000055a3bcb4e583 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3351583)
>    #1 0x000055a3bcb4c50e llvm::sys::RunSignalHandlers() 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x334f50e)
>    #2 0x000055a3bcad2923 (anonymous 
> namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) 
> CrashRecoveryContext.cpp:0:0
>    #3 0x000055a3bcad2a9e CrashRecoverySignalHandler(int) 
> CrashRecoveryContext.cpp:0:0
>    #4 0x00007f4af3152b00 __restore_rt (/lib64/libc.so.6+0x3eb00)
>    #5 0x00007f4af31a2d0c __pthread_kill_implementation 
> (/lib64/libc.so.6+0x8ed0c)
>    #6 0x00007f4af3152a56 gsignal (/lib64/libc.so.6+0x3ea56)
>    #7 0x00007f4af313c7f4 abort (/lib64/libc.so.6+0x287f4)
>    #8 0x000055a3bcad787f 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x32da87f)
>    #9 0x000055a3bb83b308 
> llvm::PPCInstrInfo::copyPhysReg(llvm::MachineBasicBlock&, 
> llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, llvm::DebugLoc 
> const&, llvm::MCRegister, llvm::MCRegister, bool) const PPCInstrInfo.cpp:0:0
>   #10 0x000055a3bc1242bb (anonymous 
> namespace)::ExpandPostRA::runOnMachineFunction(llvm::MachineFunction&) 
> ExpandPostRAPseudos.cpp:0:0
>   #11 0x000055a3bbf62d4d 
> llvm::MachineFunctionPass::runOnFunction(llvm::Function&) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x2765d4d)
>   #12 0x000055a3bc3fc107 llvm::FPPassManager::runOnFunction(llvm::Function&) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x2bff107)
>   #13 0x000055a3bc403b81 llvm::FPPassManager::runOnModule(llvm::Module&) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x2c06b81)
>   #14 0x000055a3bc3fcafc llvm::legacy::PassManagerImpl::run(llvm::Module&) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x2bffafc)
>   #15 0x000055a3bd2fd16d clang::EmitBackendOutput(clang::DiagnosticsEngine&, 
> clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, 
> clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, 
> llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, 
> std::default_delete<llvm::raw_pwrite_stream>>) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3b0016d)
>   #16 0x000055a3bd6a27ee 
> clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) 
> CodeGenAction.cpp:0:0
>   #17 0x000055a3bdf46cb4 clang::ParseAST(clang::Sema&, bool, bool) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x4749cb4)
>   #18 0x000055a3bd5f0f50 clang::FrontendAction::Execute() 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3df3f50)
>   #19 0x000055a3bd565d1f 
> clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3d68d1f)
>   #20 0x000055a3bd69be92 
> clang::ExecuteCompilerInvocation(clang::CompilerInstance*) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3e9ee92)
>   #21 0x000055a3bb785028 cc1_main(llvm::ArrayRef<char const*>, char const*, 
> void*) (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x1f88028)
>   #22 0x000055a3bb782f2f ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) 
> driver.cpp:0:0
>   #23 0x000055a3bd3ea372 void llvm::function_ref<void 
> ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>,
>  std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char>>*, bool*) const::$_1>(long) Job.cpp:0:0
>   #24 0x000055a3bcad2837 
> llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x32d5837)
>   #25 0x000055a3bd3e9ecf 
> clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>,
>  std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char>>*, bool*) const 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3bececf)
>   #26 0x000055a3bd3aaa68 
> clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, 
> clang::driver::Command const*&) const 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3bada68)
>   #27 0x000055a3bd3aad37 
> clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, 
> llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) const 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3badd37)
>   #28 0x000055a3bd3c5658 
> clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, 
> llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x3bc8658)
>   #29 0x000055a3bb7828a2 main 
> (/home/nathan/tmp/build/llvm-bisect/stage1/bin/clang-15+0x1f858a2)
>   #30 0x00007f4af313d550 __libc_start_call_main (/lib64/libc.so.6+0x29550)
>   #31 0x00007f4af313d609 __libc_start_main@GLIBC_2.2.5 
> (/lib64/libc.so.6+0x29609)
>   #32 0x000055a3bb77fe85 _start 
> /build/glibc/src/glibc/csu/../sysdeps/x86_64/start.S:117:0
>   clang-15: error: clang frontend command failed with exit code 134 (use -v 
> to see invocation)
>   ClangBuiltLinux clang version 15.0.0 (https://github.com/llvm/llvm-project 
> c35ca3a1c78f693b749ad11742350b7fc6c5cd89)
>   Target: powerpc64le-unknown-linux-gnu
>   Thread model: posix
>   InstalledDir: /home/nathan/tmp/build/llvm-bisect/stage1/bin
>   clang-15: note: diagnostic msg: Error generating preprocessed source(s) - 
> no preprocessable inputs.

Thanks for reporting this issue, @nathanchance. Sorry for the delayed response. 
Just wanted to say that I've seen your response now and I will be investigating 
this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D125506/new/

https://reviews.llvm.org/D125506

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to