[llvm-bugs] [Bug 44988] New: WASM SIMD: "error in backend: Cannot select..."

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Feb 21 05:20:28 PST 2020


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

            Bug ID: 44988
           Summary: WASM SIMD: "error in backend: Cannot select..."
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: LLVM Codegen
          Assignee: unassignedclangbugs at nondot.org
          Reporter: eustas.ru at gmail.com
                CC: llvm-bugs at lists.llvm.org, neeilans at live.com,
                    richard-llvm at metafoo.co.uk

Crash on building https://github.com/google/highway test.

Console output:
fatal error: error in backend: Cannot select: t106: i64 = sign_extend_inreg
t105, ValueType:ch:i32
  t105: i64 = extract_vector_elt t97, Constant:i32<0>
    t97: v4i32,ch = load<(dereferenceable load 16 from %ir.in_lanes, !tbaa !12,
!alias.scope !369)> t101, TargetFrameIndex:i32<0>, undef:i32
      t10: i32 = TargetFrameIndex<0>
      t15: i32 = undef
    t3: i32 = Constant<0>
In function:
_ZN3hwy6N_WASM12_GLOBAL__N_112TestMulEvenTINS_4DescIiLm4EEENS3_IxLm2EEEEEvT_T0_
Stack dump:
0.      Program arguments: /Users/eustas/clients/ems/emsdk/upstream/bin/clang++
-target wasm32-unknown-emscripten -D__EMSCRIPTEN_major__=1
-D__EMSCRIPTEN_minor__=39 -D__EMSCRIPTEN_tiny__=8 -D_LIBCPP_ABI_VERSION=2
-Dunix -D__unix -D__unix__ -Werror=implicit-function-declaration -Xclang
-nostdsysteminc -Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/include/libcxx
-Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/lib/libcxxabi/include
-Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/include/compat
-Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/include
-Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/include/libc
-Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten
-Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/local/include
-Xclang -isystem/Users/eustas/.emscripten_cache/wasm-obj/include
-DPROFILER_ENABLED=0 -D__DATE__="redacted" -D__TIMESTAMP__="redacted"
-D__TIME__="redacted" -I../third_party/highway -isystem
../third_party/googletest/googletest/include -isystem
../third_party/googletest/googletest -DJXL_DEBUG_WARNING -DJXL_DEBUG_ON_ERROR
-O2 -Wno-builtin-macro-redefined -Wall -Werror -D__DATE__="redacted"
-D__TIMESTAMP__="redacted" -D__TIME__="redacted" -fmerge-all-constants -Wextra
-Wformat-security -Wno-unused-function -Wnon-virtual-dtor -Woverloaded-virtual
-Wvla -Wc++2a-extensions -Wfloat-overflow-conversion -Wfloat-zero-conversion
-Wfor-loop-analysis -Wgnu-redeclared-enum -Winfinite-recursion -Wself-assign
-Wstring-conversion -Wtautological-overlap-compare -Wthread-safety-analysis
-Wundefined-func-template -fno-cxx-exceptions -fno-slp-vectorize -fno-vectorize
-Xclang -fdiagnostics-show-option -fcolor-diagnostics -fmath-errno
-fno-exceptions -DHWY_USE_GTEST -std=c++11 -MD -MT
third_party/highway/CMakeFiles/arithmetic_test.dir/hwy/tests/arithmetic_test.cc.o
-MF
third_party/highway/CMakeFiles/arithmetic_test.dir/hwy/tests/arithmetic_test.cc.o.d
-c -DEMSCRIPTEN -msimd128 ../third_party/highway/hwy/tests/arithmetic_test.cc
-Xclang
-isystem/Users/eustas/clients/ems/emsdk/upstream/emscripten/system/include/SDL
-c -o
third_party/highway/CMakeFiles/arithmetic_test.dir/hwy/tests/arithmetic_test.cc.o
-mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj
-mllvm -disable-lsr 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module
'../third_party/highway/hwy/tests/arithmetic_test.cc'.
4.      Running pass 'WebAssembly Instruction Selection' on function
'@_ZN3hwy6N_WASM12_GLOBAL__N_112TestMulEvenTINS_4DescIiLm4EEENS3_IxLm2EEEEEvT_T0_'
0  libLLVM.dylib      0x000000010e6508e5
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
1  libLLVM.dylib      0x000000010e64f668 llvm::sys::RunSignalHandlers() + 248
2  libLLVM.dylib      0x000000010e64fd79 llvm::sys::CleanupOnSignal(unsigned
long) + 233
3  libLLVM.dylib      0x000000010e5772ba (anonymous
namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) + 106
4  libLLVM.dylib      0x000000010e577232
llvm::CrashRecoveryContext::HandleExit(int) + 50
5  libLLVM.dylib      0x000000010e64c2f3 llvm::sys::Process::Exit(int) + 35
6  clang++            0x000000010e4c0075 LLVMErrorHandler(void*,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&, bool) + 101
7  libLLVM.dylib      0x000000010e585f7b llvm::report_fatal_error(llvm::Twine
const&, bool) + 251
8  libLLVM.dylib      0x000000010e586053
llvm::report_fatal_error(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) + 35
9  libLLVM.dylib      0x000000010ee923d4
llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) + 468
10 libLLVM.dylib      0x000000010ee91107
llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*,
unsigned int) + 21031
11 libLLVM.dylib      0x00000001102e0fa8 (anonymous
namespace)::WebAssemblyDAGToDAGISel::Select(llvm::SDNode*) + 1400
12 libLLVM.dylib      0x000000010ee873e8
llvm::SelectionDAGISel::DoInstructionSelection() + 1656
13 libLLVM.dylib      0x000000010ee861cc
llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 6300
14 libLLVM.dylib      0x000000010ee8412b
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 7883
15 libLLVM.dylib      0x000000010ee80c80
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 2432
16 libLLVM.dylib      0x000000010e9ef4bd
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 349
17 libLLVM.dylib      0x000000010e7b6563
llvm::FPPassManager::runOnFunction(llvm::Function&) + 1107
18 libLLVM.dylib      0x000000010e7b6878
llvm::FPPassManager::runOnModule(llvm::Module&) + 72
19 libLLVM.dylib      0x000000010e7b6dc2
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1042
20 libclang-cpp.dylib 0x0000000112520b3e
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions
const&, clang::CodeGenOptions const&, clang::TargetOptions const&,
clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*,
clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream,
std::__1::default_delete<llvm::raw_pwrite_stream> >) + 12110
21 libclang-cpp.dylib 0x0000000112822b48
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 1096
22 libclang-cpp.dylib 0x0000000111638d83 clang::ParseAST(clang::Sema&, bool,
bool) + 659
23 libclang-cpp.dylib 0x0000000113043283 clang::FrontendAction::Execute() + 163
24 libclang-cpp.dylib 0x0000000112fdbb63
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1731
25 libclang-cpp.dylib 0x00000001130b6d7b
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1787
26 clang++            0x000000010e4bfbb3 cc1_main(llvm::ArrayRef<char const*>,
char const*, void*) + 2051
27 clang++            0x000000010e4bd8d9
ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) + 345
28 libclang-cpp.dylib 0x0000000112c74207 void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >*, bool*) const::$_1>(long) + 23
29 libLLVM.dylib      0x000000010e5771d4
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 228
30 libclang-cpp.dylib 0x0000000112c73569
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >*, bool*) const + 377
31 libclang-cpp.dylib 0x0000000112c3fa6d
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const + 413
32 libclang-cpp.dylib 0x0000000112c3fedd
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*> >&)
const + 125
33 libclang-cpp.dylib 0x0000000112c59e0c
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*> >&) +
396
34 clang++            0x000000010e4bcfc4 main + 10356
35 libdyld.dylib      0x00007fff66cf77fd start + 1
36 libdyld.dylib      0x000000000000005f start + 18446603338791290979
clang-11: error: clang frontend command failed with exit code 70 (use -v to see
invocation)
clang version 11.0.0
(/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project
9dc84e9b02d1e402503906099d42fbae4da7d8d9)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /Users/eustas/clients/ems/emsdk/upstream/bin

-- 
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/20200221/99fe6b19/attachment-0001.html>


More information about the llvm-bugs mailing list