https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121784

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|missed-optimization,        |
                   |needs-reduction             |

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The options passed to GCC:  `-march=rv64imafdcbv`

Note clang ICEs on the same thing:
```
fatal error: error in backend: failed to perform tail call elimination on a
call site marked musttail
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: /opt/compiler-explorer/clang-trunk/bin/clang++ -g -o
/app/output.s -fverbose-asm -S -target riscv64-unknown-linux-gnu -march=rv64gc
-mabi=lp64d
--gcc-toolchain=/opt/compiler-explorer/riscv64/gcc-14.2.0/riscv64-unknown-linux-gnu
--sysroot=/opt/compiler-explorer/riscv64/gcc-14.2.0/riscv64-unknown-linux-gnu/riscv64-unknown-linux-gnu/sysroot
-fcolor-diagnostics -fno-crash-diagnostics -xc++ -g0 -march=rv64imafdcbv
<source>
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '<source>'.
4.      Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on
function '@_Z1m9StageListiiDv4_fS0_S0_'
 #0 0x0000000003cbde88 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3cbde88)
 #1 0x0000000003cbb85c llvm::sys::CleanupOnSignal(unsigned long)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3cbb85c)
 #2 0x0000000003c0bc43 llvm::CrashRecoveryContext::HandleExit(int)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c0bc43)
 #3 0x0000000003cb30ae llvm::sys::Process::Exit(int, bool)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3cb30ae)
 #4 0x0000000000dbedfb LLVMErrorHandler(void*, char const*, bool)
cc1_main.cpp:0:0
 #5 0x0000000003c159b3 llvm::report_fatal_error(llvm::Twine const&, bool)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c159b3)
 #6 0x0000000003c15b49
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c15b49)
 #7 0x00000000022d2613
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x22d2613)
 #8 0x0000000005153120
llvm::TargetLowering::LowerCallTo(llvm::TargetLowering::CallLoweringInfo&)
const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5153120)
 #9 0x000000000515514d
llvm::SelectionDAGBuilder::lowerInvokable(llvm::TargetLowering::CallLoweringInfo&,
llvm::BasicBlock const*)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x515514d)
#10 0x000000000516fe64 llvm::SelectionDAGBuilder::LowerCallTo(llvm::CallBase
const&, llvm::SDValue, bool, bool, llvm::BasicBlock const*,
llvm::TargetLowering::PtrAuthInfo const*)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x516fe64)
#11 0x0000000005188018 llvm::SelectionDAGBuilder::visitCall(llvm::CallInst
const&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5188018)
#12 0x000000000519ca7c llvm::SelectionDAGBuilder::visit(llvm::Instruction
const&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x519ca7c)
#13 0x000000000521c9f4
llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction,
false, false, void, true, llvm::BasicBlock>, false, true>,
llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction,
false, false, void, true, llvm::BasicBlock>, false, true>, bool&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x521c9f4)
#14 0x000000000521dd2a
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x521dd2a)
#15 0x000000000521fcde
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x521fcde)
#16 0x000000000520eb81
llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x520eb81)
#17 0x00000000030b0e6d
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x30b0e6d)
#18 0x0000000003612202 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3612202)
#19 0x0000000003612491 llvm::FPPassManager::runOnModule(llvm::Module&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3612491)
#20 0x0000000003613d67 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3613d67)
#21 0x0000000003f5fa7d clang::emitBackendOutput(clang::CompilerInstance&,
clang::CodeGenOptions&, 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*)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f5fa7d)
#22 0x000000000459698c
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x459698c)
#23 0x00000000061fc99c clang::ParseAST(clang::Sema&, bool, bool)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x61fc99c)
#24 0x000000000459717d clang::CodeGenAction::ExecuteAction()
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x459717d)
#25 0x00000000048a2caa clang::FrontendAction::Execute()
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x48a2caa)
#26 0x000000000481d19b
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x481d19b)
#27 0x0000000004997263
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x4997263)
#28 0x0000000000dc0e55 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0xdc0e55)
#29 0x0000000000db8dfd ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&,
llvm::ToolContext const&) driver.cpp:0:0
#30 0x0000000004609e99 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) Job.cpp:0:0
#31 0x0000000003c0bb43
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c0bb43)
#32 0x000000000460a0b9
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) Job.cpp:0:0
#33 0x00000000045cd01d
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&, bool) const
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x45cd01d)
#34 0x00000000045cdfd1
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool)
const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x45cdfd1)
#35 0x00000000045d792c
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0x45d792c)
#36 0x0000000000dbd661 clang_main(int, char**, llvm::ToolContext const&)
(/opt/compiler-explorer/clang-trunk/bin/clang+++0xdbd661)
#37 0x0000000000c6ccd4 main
(/opt/compiler-explorer/clang-trunk/bin/clang+++0xc6ccd4)
#38 0x000077e4cf029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#39 0x000077e4cf029e40 __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#40 0x0000000000db8895 _start
(/opt/compiler-explorer/clang-trunk/bin/clang+++0xdb8895)
clang++: error: clang frontend command failed with exit code 70 (use -v to see
invocation)
Compiler returned: 70
```


So you might want to report this bug there too. OR even better report upstream
to WebKit that musttail is broken and maybe should not be used.

Reply via email to