[llvm] [AArch64][GlobalISel] Make G_DUP immediate 32-bits or larger (PR #96780)
David Spickett via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 9 04:58:50 PDT 2024
DavidSpickett wrote:
This PR caused some of the test suite build to crash the compiler: https://lab.llvm.org/buildbot/#/builders/125/builds/541
```
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: /home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang++ -DNDEBUG -O0 -fPIE -w -Werror=date-time -MD -MT Bitcode/simd_ops/CMakeFiles/simd_ops_test_op_cmeq_1056.dir/AArch64_tests/test_op_cmeq_1056.bc.o -MF CMakeFiles/simd_ops_test_op_cmeq_1056.dir/AArch64_tests/test_op_cmeq_1056.bc.o.d -o CMakeFiles/simd_ops_test_op_cmeq_1056.dir/AArch64_tests/test_op_cmeq_1056.bc.o -c /home/tcwg-buildbot/worker/clang-aarch64-global-isel/test/test-suite/Bitcode/simd_ops/AArch64_tests/test_op_cmeq_1056.bc
1. Code generation
2. Running pass 'Function Pass Manager' on module '/home/tcwg-buildbot/worker/clang-aarch64-global-isel/test/test-suite/Bitcode/simd_ops/AArch64_tests/test_op_cmeq_1056.bc'.
3. Running pass 'RegBankSelect' on function '@__test_op'
<...>
#0 0x0000aaaae0c95714 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3731714)
#1 0x0000aaaae0c934d8 llvm::sys::RunSignalHandlers() (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x372f4d8)
#2 0x0000aaaae0c94a6c llvm::sys::CleanupOnSignal(unsigned long) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3730a6c)
#3 0x0000aaaae0c07d3c CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#4 0x0000ffff941e3598 (linux-vdso.so.1+0x598)
#5 0x0000aaaade912324 llvm::AArch64RegisterBankInfo::getInstrMapping(llvm::MachineInstr const&) const (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x13ae324)
#6 0x0000aaaae18e3078 llvm::RegBankSelect::assignInstr(llvm::MachineInstr&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x437f078)
#7 0x0000aaaae18e34c4 llvm::RegBankSelect::assignRegisterBanks(llvm::MachineFunction&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x437f4c4)
#8 0x0000aaaae18e3804 llvm::RegBankSelect::runOnMachineFunction(llvm::MachineFunction&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x437f804)
#9 0x0000aaaae01c1db8 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x2c5ddb8)
#10 0x0000aaaae06e6544 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3182544)
#11 0x0000aaaae06ee158 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x318a158)
#12 0x0000aaaae06e6f30 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3182f30)
#13 0x0000aaaae0e949d0 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*) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x39309d0)
#14 0x0000aaaae139cfc0 clang::CodeGenAction::ExecuteAction() (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3e38fc0)
#15 0x0000aaaae15b6264 clang::FrontendAction::Execute() (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x4052264)
#16 0x0000aaaae153a6ec clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3fd66ec)
#17 0x0000aaaae1692dd4 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x412edd4)
#18 0x0000aaaade7d6cf0 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x1272cf0)
#19 0x0000aaaade7d3c44 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#20 0x0000aaaae13df14c 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::$_0>(long) Job.cpp:0:0
#21 0x0000aaaae0c07a4c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x36a3a4c)
#22 0x0000aaaae13de730 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3e7a730)
#23 0x0000aaaae13a5edc clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3e41edc)
#24 0x0000aaaae13a612c clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3e4212c)
#25 0x0000aaaae13bf48c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x3e5b48c)
#26 0x0000aaaade7d3048 clang_main(int, char**, llvm::ToolContext const&) (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x126f048)
#27 0x0000aaaade7e1194 main (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x127d194)
#28 0x0000ffff93d25e10 __libc_start_main /build/glibc-Q8DG8B/glibc-2.31/csu/../csu/libc-start.c:342:3
#29 0x0000aaaade7d1768 _start (/home/tcwg-buildbot/worker/clang-aarch64-global-isel/stage1.install/bin/clang+++0x126d768)
make[2]: Entering directory '/home/tcwg-buildbot/worker/clang-aarch64-global-isel/test/sandbox/build'
```
I'll dig out a reproducer, but you can also compile using the files in llvm-test-suite.
https://github.com/llvm/llvm-project/pull/96780
More information about the llvm-commits
mailing list