[llvm-bugs] [Bug 50853] New: 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

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 24 18:39:48 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=50853

            Bug ID: 50853
           Summary: 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
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: Hexagon
          Assignee: unassignedbugs at nondot.org
          Reporter: natechancellor at gmail.com
                CC: llvm-bugs at lists.llvm.org

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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210625/552c804b/attachment-0001.html>


More information about the llvm-bugs mailing list