Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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 #50197

Closed
nathanchance opened this issue Jun 25, 2021 · 2 comments
Assignees
Labels
backend:Hexagon bugzilla Issues migrated from bugzilla

Comments

@nathanchance
Copy link
Member

Bugzilla Link 50853
Resolution FIXED
Resolved on Jun 28, 2021 10:18
Version trunk
OS Linux
Blocks #4440
CC @kparzysz-quic,@nickdesaulniers

Extended Description

When building the Hexagon Linux kernel's allmodconfig target, there is a crash in the device mapper driver: ClangBuiltLinux/linux#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_deletellvm::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_deletellvm::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::Optionalllvm::StringRef >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, 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::Optionalllvm::StringRef >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, 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 a9f3ac9)
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.

@nathanchance
Copy link
Member Author

assigned to @kparzysz-quic

@kparzysz-quic
Copy link

Fixed in https://reviews.llvm.org/rG9c5ed8d56792.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 11, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:Hexagon bugzilla Issues migrated from bugzilla
Projects
None yet
Development

No branches or pull requests

2 participants