LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 50853 - fatal error: error in backend: Cannot select: t54: i64,ch = load<(load 1 from %fixed-stack.1, align 8), sext from i1> t0, FrameIndex:i32<-1>, undef:i32
Summary: fatal error: error in backend: Cannot select: t54: i64,ch = load<(load 1 from...
Status: RESOLVED FIXED
Alias: None
Product: libraries
Classification: Unclassified
Component: Backend: Hexagon (show other bugs)
Version: trunk
Hardware: PC Linux
: P enhancement
Assignee: Krzysztof Parzyszek
URL:
Keywords:
Depends on:
Blocks: 4068
  Show dependency tree
 
Reported: 2021-06-24 18:39 PDT by Nathan Chancellor
Modified: 2021-06-28 10:18 PDT (History)
5 users (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nathan Chancellor 2021-06-24 18:39:48 PDT
When building the Hexagon Linux kernel's allmodconfig target, there is a crash in the device mapper driver: https://github.com/ClangBuiltLinux/linux/issues/1410

A reducer reproducer:

$ cat dm-bitset.i
dm_bitset_resize_new_root(*, long long, old_nr_entries, new_nr_entries,
                          _Bool default_value) {
  long long value = default_value ? ~0 : 0;
  dm_array_resize(value);
}

$ clang --target=hexagon-linux -O0 -c -o /dev/null dm-bitset.i
...

$ clang --target=hexagon-linux -O1 -c -o /dev/null dm-bitset.i
...
fatal error: error in backend: Cannot select: t28: i64,ch = load<(load 1 from %fixed-stack.0, align 8), sext from i1> t0, FrameIndex:i32<-1>, undef:i32
  t9: i32 = FrameIndex<-1>
  t10: i32 = undef
In function: dm_bitset_resize_new_root
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: clang --target=hexagon-linux -O1 -c -o /dev/null dm-bitset.i
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'dm-bitset.i'.
4.      Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@dm_bitset_resize_new_root'
 #0 0x000000000301dd53 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x301dd53)
 #1 0x000000000301bb9e llvm::sys::RunSignalHandlers() (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x301bb9e)
 #2 0x0000000002fa53f3 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
 #3 0x0000000002fa536f llvm::CrashRecoveryContext::HandleExit(int) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x2fa536f)
 #4 0x00000000030180c7 llvm::sys::Process::Exit(int, bool) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x30180c7)
 #5 0x0000000001b28860 llvm::DenseMapBase<llvm::DenseMap<llvm::AliasSetTracker::ASTCallbackVH, llvm::AliasSet::PointerRec*, llvm::AliasSetTracker::ASTCallbackVHDenseMapInfo, llvm::detail::DenseMapPair<llvm::AliasSetTracker::ASTCallbackVH, llvm::AliasSet::PointerRec*> >, llvm::AliasSetTracker::ASTCallbackVH, llvm::AliasSet::PointerRec*, llvm::AliasSetTracker::ASTCallbackVHDenseMapInfo, llvm::detail::DenseMapPair<llvm::AliasSetTracker::ASTCallbackVH, llvm::AliasSet::PointerRec*> >::destroyAll() cc1_main.cpp:0:0
 #6 0x0000000002fa9c42 llvm::report_fatal_error(llvm::Twine const&, bool) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x2fa9c42)
 #7 0x0000000002fa9d17 (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x2fa9d17)
 #8 0x0000000003e5f42e llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3e5f42e)
 #9 0x0000000003e5e3fc llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3e5e3fc)
#10 0x0000000001c66c1f llvm::HexagonDAGToDAGISel::SelectLoad(llvm::SDNode*) HexagonISelDAGToDAG.cpp:0:0
#11 0x0000000003e5509e llvm::SelectionDAGISel::DoInstructionSelection() (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3e5509e)
#12 0x0000000003e53f13 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3e53f13)
#13 0x0000000003e5183e llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3e5183e)
#14 0x0000000003e4e0c1 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3e4e0c1)
#15 0x0000000001c72a74 llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) HexagonISelDAGToDAG.cpp:0:0
#16 0x0000000002375ccd llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x2375ccd)
#17 0x00000000027fd3e8 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x27fd3e8)
#18 0x00000000028058b1 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x28058b1)
#19 0x00000000027fdee1 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x27fdee1)
#20 0x00000000036f6c0f (anonymous namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) BackendUtil.cpp:0:0
#21 0x00000000036f136c 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/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x36f136c)
#22 0x0000000003a29980 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#23 0x00000000041459b4 clang::ParseAST(clang::Sema&, bool, bool) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x41459b4)
#24 0x000000000397e1e0 clang::FrontendAction::Execute() (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x397e1e0)
#25 0x00000000038f193f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x38f193f)
#26 0x0000000003a23a07 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3a23a07)
#27 0x0000000001b28538 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x1b28538)
#28 0x0000000001b2608d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#29 0x00000000037940b2 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
#30 0x0000000002fa5307 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x2fa5307)
#31 0x0000000003793c17 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/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3793c17)
#32 0x000000000375bca8 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x375bca8)
#33 0x000000000375bf77 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x375bf77)
#34 0x0000000003774641 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x3774641)
#35 0x0000000001b25956 main (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x1b25956)
#36 0x00007f8975e52b25 __libc_start_main (/usr/lib/libc.so.6+0x27b25)
#37 0x0000000001b22cfe _start (/home/nathan/cbl/github/tc-build/build/llvm/stage1/bin/clang-13+0x1b22cfe)
clang-13: error: clang frontend command failed with exit code 70 (use -v to see invocation)
ClangBuiltLinux clang version 13.0.0 (https://github.com/llvm/llvm-project a9f3ac9e3dbb72dee5c7223c1ff972492e010c35)
Target: hexagon-unknown-linux
Thread model: posix
InstalledDir: /home/nathan/cbl/github/tc-build/build/llvm/stage1/bin
clang-13: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
Comment 1 Krzysztof Parzyszek 2021-06-28 10:18:49 PDT
Fixed in https://reviews.llvm.org/rG9c5ed8d56792.