Skip to content

[BUG] Clang crashes with an inline statement in ggml #1928

@RossComputerGuy

Description

@RossComputerGuy

Description

When ggml.c in llama.cpp is compiled, this compiler crash occurs:

  fatal error: error in backend: Cannot select: 0x8da26c0: v4f32 = fmaxnum 0xbeda088, 0xbd15438, src/llama.cpp/ggml.c:3751:117 @[ src/llama.cpp/ggml.c:10520:9 @[ src/llama.cpp/ggml.c:10533:17 @[ src/llama.cpp/ggml.c:15101:17 ] ] ]
    0xbeda088: v4f32,i32,ch = ARMISD::VLD1_UPD<(load (s128) from %ir.544, align 4, !tbaa !985, !alias.scope !38240)> 0xaec05d8, 0xbd10b48, Constant:i32<16>, Constant:i32<1>, src/llama.cpp/ggml.c:3751:118 @[ src/llama.cpp/ggml.c:10520:9 @[ src/llama.cpp/ggml.c:10533:17 @[ src/llama.cpp/ggml.c:15101:17 ] ] ]
      0xbd10b48: i32,ch = CopyFromReg 0xaec05d8, Register:i32 %167, src/llama.cpp/ggml.c:3751:105 @[ src/llama.cpp/ggml.c:10520:9 @[ src/llama.cpp/ggml.c:10533:17 @[ src/llama.cpp/ggml.c:15101:17 ] ] ]
        0xb61c338: i32 = Register %167
      0x8da1fd8: i32 = Constant<16>
      0xbecdfb8: i32 = Constant<1>
    0xbd15438: v4f32 = bitcast 0xb61bcb8, src/llama.cpp/ggml.c:3751:123 @[ src/llama.cpp/ggml.c:10520:9 @[ src/llama.cpp/ggml.c:10533:17 @[ src/llama.cpp/ggml.c:15101:17 ] ] ]
      0xb61bcb8: v4i32 = ARMISD::VMOVIMM TargetConstant:i32<0>, src/llama.cpp/ggml.c:3751:123 @[ src/llama.cpp/ggml.c:10520:9 @[ src/llama.cpp/ggml.c:10533:17 @[ src/llama.cpp/ggml.c:15101:17 ] ] ]
        0x8da2248: i32 = TargetConstant<0>
  In function: ggml_compute_forward_unary
  PLEASE submit a bug report to https://github.com/android-ndk/ndk/issues and include the crash backtrace, preprocessed source, and associated run script.
  Stack dump:
  0.	Program arguments: /usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi23 --sysroot=/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/sysroot -DGGML_USE_K_QUANTS -D_XOPEN_SOURCE=600 -I/home/runner/work/flutter_llama/flutter_llama/src/llama.cpp/. -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wpedantic -Wcast-qual -Wdouble-promotion -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Wno-unused-function -mfpu=neon-fp-armv8 -mno-unaligned-access -funsafe-math-optimizations -pthread -std=gnu11 -MD -MT llama.cpp/CMakeFiles/ggml.dir/ggml.c.o -MF llama.cpp/CMakeFiles/ggml.dir/ggml.c.o.d -o llama.cpp/CMakeFiles/ggml.dir/ggml.c.o -c /home/runner/work/flutter_llama/flutter_llama/src/llama.cpp/ggml.c
  1.	<eof> parser at end of file
  2.	Code generation
  3.	Running pass 'Function Pass Manager' on module '/home/runner/work/flutter_llama/flutter_llama/src/llama.cpp/ggml.c'.
  4.	Running pass 'ARM Instruction Selection' on function '@ggml_compute_forward_unary'
   #0 0x00000000047d91d8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x47d91d8)
   #1 0x00000000047d8340 llvm::sys::RunSignalHandlers() (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x47d8340)
   #2 0x00000000047a3dc3 (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x47a3dc3)
   #3 0x00000000047a3d7b (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x47a3d7b)
   #4 0x00000000047d7a87 llvm::sys::Process::Exit(int, bool) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x47d7a87)
   #5 0x00000000040dc70a (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x40dc70a)
   #6 0x0000000003083072 llvm::report_fatal_error(llvm::Twine const&, bool) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x3083072)
   #7 0x000000000282b5f5 llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x282b5f5)
   #8 0x0000000006cf4e77 (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x6cf4e77)
   #9 0x000000000641f425 (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x641f425)
  #10 0x0000000005e86b63 llvm::SelectionDAGISel::DoInstructionSelection() (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x5e86b63)
  #11 0x0000000005e8710a llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x5e8710a)
  #12 0x0000000006417d3c llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x6417d3c)
  #13 0x0000000006457ad3 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x6457ad3)
  #14 0x00000000064572df (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x64572df)
  #15 0x0000000005d9faea llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x5d9faea)
  #16 0x0000000005da0113 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x5da0113)
  #17 0x0000000005d9fc6f llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x5d9fc6f)
  #18 0x00000000063aa794 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x63aa794)
  #19 0x00000000065d6968 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream> >) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x65d6968)
  #20 0x00000000060524d5 (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x60524d5)
  #21 0x0000000005ea25a9 clang::ParseAST(clang::Sema&, bool, bool) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x5ea25a9)
  #22 0x00000000063c128d clang::FrontendAction::Execute() (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x63c128d)
  #23 0x00000000063c112d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x63c112d)
  #24 0x00000000063c1541 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x63c1541)
  #25 0x00000000066a9f54 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66a9f54)
  #26 0x00000000066a6de3 (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66a6de3)
  #27 0x00000000066a6c92 (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66a6c92)
  #28 0x00000000066a6c61 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66a6c61)
  #29 0x00000000066a69f4 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 (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66a69f4)
  #30 0x00000000066a685f clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66a685f)
  #31 0x00000000066a66f2 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*> >&) (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66a66f2)
  #32 0x00000000066752ee main (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x66752ee)
  #33 0x00007fdce403cd90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
  #34 0x00007fdce403ce40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
  #35 0x00000000064cce69 _start (/usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+0x64cce69)
  clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
  Android (9352603, based on r450784d1) clang version 14.0.7 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0cca074e9238af8b4106c30add4418f6)
  Target: armv7-none-linux-android23
  Thread model: posix
  InstalledDir: /usr/local/lib/android/sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin
  clang: note: diagnostic msg: 
  ********************

  PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
  Preprocessed source(s) and associated run script(s) are located at:
  clang: note: diagnostic msg: /tmp/ggml-53c50e.c
  clang: note: diagnostic msg: /tmp/ggml-53c50e.sh
  clang: note: diagnostic msg: 

  ********************
  [4/6] Building CXX object llama.cpp/CMakeFiles/llama.dir/llama.cpp.o
  ninja: build stopped: subcommand failed.

[Origin](https://github.com/MidstallSoftware/flutter_llama/actions/runs/6126297086/job/16630008946]

Affected versions

r25

Canary version

No response

Host OS

Linux

Host OS version

Ubuntu 22.04 (GitHub CI)

Affected ABIs

armeabi-v7a

Build system

CMake

Other build system

Flutter

minSdkVersion

23

Device API level

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Prebuilts submitted

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions