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

[BUG] NDK r23b crash #1608

Closed
DaydreamCoding opened this issue Nov 17, 2021 · 9 comments
Closed

[BUG] NDK r23b crash #1608

DaydreamCoding opened this issue Nov 17, 2021 · 9 comments
Assignees
Labels

Comments

@DaydreamCoding
Copy link

Description

./schema/generate.sh
cd project/android
mkdir build_32
cd build_32
cmake ../../../ \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_ABI="armeabi-v7a" \
-DANDROID_STL=c++_static \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_NATIVE_API_LEVEL=android-14  \
-DANDROID_TOOLCHAIN=clang \
-DMNN_USE_LOGCAT=true \
-DMNN_BUILD_FOR_ANDROID_COMMAND=true \
-DNATIVE_LIBRARY_OUTPUT=. -DNATIVE_INCLUDE_OUTPUT=. -DMNN_VULKAN=OFF -DMNN_OPENCL=OFF -DMNN_USE_THREAD_POOL=OFF \
-DMNN_SEP_BUILD=OFF \
-DMNN_BUILD_SHARED_LIBS=OFF \
-DMNN_BUILD_BENCHMARK=OFF \
-DMNN_ARM82=ON \

make -j4
  • crash
fatal error: error in backend: Cannot select: 0x7f7988494488: v4f16 = fp_round 0x7f7988494280, TargetConstant:i32<0>, source/backend/arm82/Arm82OptFunc.hpp:32:21 @[ source/backend/arm82/Arm82InstanceNorm.cpp:33:9 ]
  0x7f7988494280: v4f32,i32,ch = ARMISD::VLD1_UPD<(load 16 from %ir.119, align 4, !tbaa !26940)> 0x7f79981c4848, 0x7f79a1480810, Constant:i32<16>, Constant:i32<1>, source/backend/arm82/Arm82OptFunc.hpp:32:21 @[ source/backend/arm82/Arm82InstanceNorm.cpp:33:9 ]
    0x7f79a1480810: i32,ch = CopyFromReg 0x7f79981c4848, Register:i32 %26
      0x7f7988494a38: i32 = Register %26
    0x7f7988494218: i32 = Constant<16>
    0x7f7988494900: i32 = Constant<1>
  0x7f79884943b8: i32 = TargetConstant<0>
In function: _ZN3MNN17Arm82InstanceNormC2EPNS_7BackendEPKNS_2OpE
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: /Users/qtom/Applications/android-ndk-r23b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi16 --gcc-toolchain=/Users/qtom/Applications/android-ndk-r23b/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/qtom/Applications/android-ndk-r23b/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMNN_BUILD_FOR_ANDROID -DMNN_SUPPORT_TFLITE_QUAN -DMNN_USE_LOGCAT -DMNN_USE_NEON -DMNN_USE_THREAD_POOL -DMNN_VERSION=\"0.2.1.5git\" -DMNN_VERSION_MAJOR=0 -DMNN_VERSION_MINOR=2 -DMNN_VERSION_PATCH=1 -I/Users/qtom/workspace/DLA/MNN-org/include -I/Users/qtom/workspace/DLA/MNN-org/source -I/Users/qtom/workspace/DLA/MNN-org/express -I/Users/qtom/workspace/DLA/MNN-org/tools -I/Users/qtom/workspace/DLA/MNN-org/codegen -I/Users/qtom/workspace/DLA/MNN-org/schema/current -I/Users/qtom/workspace/DLA/MNN-org/3rd_party -I/Users/qtom/workspace/DLA/MNN-org/3rd_party/flatbuffers/include -I/Users/qtom/workspace/DLA/MNN-org/3rd_party/half -I/Users/qtom/workspace/DLA/MNN-org/3rd_party/imageHelper -I/Users/qtom/workspace/DLA/MNN-org/3rd_party/OpenCLHeaders -I/Users/qtom/workspace/DLA/MNN-org/source/backend/arm82 -I/Users/qtom/workspace/DLA/MNN-org/source/backend/arm82/compute -I/Users/qtom/workspace/DLA/MNN-org/source/backend/arm82/asm -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 -std=c++11 -O3 -fvisibility-inlines-hidden -fvisibility=hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math -fno-rtti -fno-exceptions -DNDEBUG -fPIC -fPIC -mfloat-abi=softfp -mfpu=neon -march=armv8.2-a+fp16 -mfpu=neon-fp-armv8 -mfloat-abi=softfp -DENABLE_ARMV82 -std=gnu++11 -MD -MT CMakeFiles/MNN_Arm82.dir/source/backend/arm82/Arm82InstanceNorm.cpp.o -MF CMakeFiles/MNN_Arm82.dir/source/backend/arm82/Arm82InstanceNorm.cpp.o.d -o CMakeFiles/MNN_Arm82.dir/source/backend/arm82/Arm82InstanceNorm.cpp.o -c /Users/qtom/workspace/DLA/MNN-org/source/backend/arm82/Arm82InstanceNorm.cpp
1.	<eof> parser at end of file
2.	Code generation
3.	Running pass 'Function Pass Manager' on module '/Users/qtom/workspace/DLA/MNN-org/source/backend/arm82/Arm82InstanceNorm.cpp'.
4.	Running pass 'ARM Instruction Selection' on function '@_ZN3MNN17Arm82InstanceNormC2EPNS_7BackendEPKNS_2OpE'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  clang-12 0x000000010dc5019b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 43
1  clang-12 0x000000010dc4f2e5 llvm::sys::RunSignalHandlers() + 85
2  clang-12 0x000000010dbbfba7 llvm::CrashRecoveryContext::HandleExit(int) + 87
3  clang-12 0x000000010dbbfb5e llvm::CrashRecoveryContext::HandleExit(int) + 14
4  clang-12 0x000000010dc4c8ec llvm::sys::Process::Exit(int, bool) + 44
5  clang-12 0x000000010c9ea456 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 2358
6  clang-12 0x000000010dbc5ce5 llvm::report_fatal_error(llvm::Twine const&, bool) + 229
7  clang-12 0x000000010dbc5d2d llvm::report_fatal_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) + 29
8  clang-12 0x000000010e6e803f llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) + 303
9  clang-12 0x000000010e6e5c9e llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) + 18878
10 clang-12 0x000000010cbd628b llvm::createARMISelDag(llvm::ARMBaseTargetMachine&, llvm::CodeGenOpt::Level) + 3963
11 clang-12 0x000000010e6dcd9c llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 2828
12 clang-12 0x000000010e6db146 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 1798
13 clang-12 0x000000010e6d9d48 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 1592
14 clang-12 0x000000010cbd53c4 llvm::createARMISelDag(llvm::ARMBaseTargetMachine&, llvm::CodeGenOpt::Level) + 180
15 clang-12 0x000000010d2c2d57 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 167
16 clang-12 0x000000010d63a5ee llvm::FPPassManager::runOnFunction(llvm::Function&) + 510
17 clang-12 0x000000010d646024 llvm::FPPassManager::runOnModule(llvm::Module&) + 52
18 clang-12 0x000000010d63bd54 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 772
19 clang-12 0x000000010de6dbb5 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> >) + 14917
20 clang-12 0x000000010de6a4df 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> >) + 879
21 clang-12 0x000000010e091175 clang::EmitObjAction::EmitObjAction(llvm::LLVMContext*) + 1941
22 clang-12 0x000000010ef7748e clang::ParseAST(clang::Sema&, bool, bool) + 478
23 clang-12 0x000000010e2c4340 clang::FrontendAction::Execute() + 48
24 clang-12 0x000000010e2628f8 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 472
25 clang-12 0x000000010e31bc8b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 411
26 clang-12 0x000000010c9e9f2e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1038
27 clang-12 0x000000010c9e7a3f main + 6015
28 clang-12 0x000000010e17a0d7 clang::driver::JobList::clear() + 1495
29 clang-12 0x000000010dbbfb0b llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 187
30 clang-12 0x000000010e1796af 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 + 303
31 clang-12 0x000000010e155b11 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const + 177
32 clang-12 0x000000010e155e3d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*> >&) const + 93
33 clang-12 0x000000010e1674d3 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*> >&) + 195
34 clang-12 0x000000010c9e6da5 main + 2789
35 dyld     0x0000000118bf84fe start + 462
clang++: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Android (7714059, based on r416183c1) clang version 12.0.8 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee)
Target: armv7-none-linux-android16
Thread model: posix
InstalledDir: /Users/qtom/Applications/android-ndk-r23b/toolchains/llvm/prebuilt/darwin-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: /var/folders/9x/trd5s2ys2b31lcsspnk9dbvr0000gn/T/Arm82InstanceNorm-22e98b.cpp
clang++: note: diagnostic msg: /var/folders/9x/trd5s2ys2b31lcsspnk9dbvr0000gn/T/Arm82InstanceNorm-22e98b.sh
clang++: note: diagnostic msg: Crash backtrace is located in
clang++: note: diagnostic msg: /Users/qtom/Library/Logs/DiagnosticReports/clang++_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
clang++: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang++: note: diagnostic msg: 

********************
make[2]: *** [CMakeFiles/MNN_Arm82.dir/source/backend/arm82/Arm82InstanceNorm.cpp.o] Error 70
make[1]: *** [CMakeFiles/MNN_Arm82.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Environment Details

  • NDK Version: r23b
  • Build system: CMake
  • Host OS: Mac intel-chip
  • ABI: armeabi-v7a
  • NDK API level: android-14
  • Device API level: -
@stephenhines
Copy link
Collaborator

Can you grab the two files as mentioned and just attach them directly here? That would make it easier for us to verify the bug and fix it.

clang++: note: diagnostic msg: /var/folders/9x/trd5s2ys2b31lcsspnk9dbvr0000gn/T/Arm82InstanceNorm-22e98b.cpp
clang++: note: diagnostic msg: /var/folders/9x/trd5s2ys2b31lcsspnk9dbvr0000gn/T/Arm82InstanceNorm-22e98b.sh

@DaydreamCoding
Copy link
Author

@DanAlbert DanAlbert added this to Awaiting triage in LLVM via automation Nov 17, 2021
@DanAlbert DanAlbert added this to Triaged in r23c via automation Nov 17, 2021
@DanAlbert DanAlbert added this to Triaged in r24 via automation Jan 18, 2022
@DanAlbert DanAlbert moved this from Triaged to Unconfirmed in r24 Jan 18, 2022
@DanAlbert DanAlbert added this to Triaged in r25 via automation Feb 1, 2022
@DanAlbert DanAlbert moved this from Triaged to Unconfirmed in r25 Feb 1, 2022
@DanAlbert DanAlbert moved this from Unconfirmed to Triaged in r24 Feb 9, 2022
@DanAlbert DanAlbert moved this from Unconfirmed to Triaged in r25 Feb 9, 2022
@DanAlbert DanAlbert moved this from Awaiting triage to Awaiting fix in LLVM Feb 9, 2022
@DanAlbert
Copy link
Member

Upstream has a fix in review: https://reviews.llvm.org/D119354

@DanAlbert DanAlbert removed this from Triaged in r24 Feb 22, 2022
@DanAlbert DanAlbert added this to Triaged in r24b via automation Feb 22, 2022
@DanAlbert DanAlbert moved this from Awaiting fix to Awaiting update in LLVM Feb 22, 2022
@stephenhines
Copy link
Collaborator

https://android-review.googlesource.com/c/toolchain/llvm_android/+/2070387 has the fix for this cherry-picked to the r23 compiler.

@DanAlbert DanAlbert moved this from Triaged to Needs prebuilt update in r23c Apr 21, 2022
@DanAlbert DanAlbert moved this from Triaged to Needs prebuilt update in r24b Apr 21, 2022
@DanAlbert DanAlbert moved this from Triaged to Needs prebuilt update in r25 Apr 21, 2022
@DanAlbert
Copy link
Member

New builds are in-flight for r23 and r25, but we're going to have to revisit r24.

@DanAlbert DanAlbert moved this from Needs prebuilt update to Needs cherry-pick in r23c Apr 22, 2022
@DanAlbert DanAlbert moved this from Awaiting update to Prebuilts submitted in LLVM Apr 22, 2022
@DanAlbert DanAlbert moved this from Prebuilts submitted to Awaiting prebuilt drop in LLVM Apr 22, 2022
@DanAlbert DanAlbert moved this from Needs cherry-pick to Merged in r23c Apr 22, 2022
@DanAlbert
Copy link
Member

Should be fixed in r23 build 8486889.

r24 still on the to-do list.

r25 will probably pick this up in the first point release (r25b). There's a blocker with the build that was going to contain the fix and we have an external scheduling constraint that won't let us wait.

cyberknight777 pushed a commit to Neutron-Toolchains/aosp_llvm_android that referenced this issue May 30, 2022
android/ndk#1608

a76620143c5 [ARM] Patterns for vector conversion between half and float

Test: N/A
Change-Id: I760a23452d0756b87e5975ca12373446d4800b0b
MaoHan001 pushed a commit to riscv-android-src/platform-ndk that referenced this issue Jun 22, 2022
Changelog updates are in a separate commit to make cherry-picking to
master easier.

Bug: android/ndk#1590
Bug: android/ndk#1608
Bug: android/ndk#1619
Bug: android/ndk#1645
Bug: android/ndk#1672
Test: ./checkbuild.py && ./run_tests.py
Change-Id: Ie5571ed436cb0a3fe9ad675ed15f62fff4e978d6
(cherry picked from commit 59e8e507c2a2147c2bc806087c953dd36f6b1c41)
Merged-In: Ie5571ed436cb0a3fe9ad675ed15f62fff4e978d6
MaoHan001 pushed a commit to riscv-android-src/platform-ndk that referenced this issue Jun 22, 2022
Separate from the toolchain update to avoid merge conflicts.

Bug: android/ndk#1590
Bug: android/ndk#1608
Bug: android/ndk#1619
Bug: android/ndk#1645
Bug: android/ndk#1672
Test: None
Change-Id: I6e24e582dc0c300db173083009da9a1494360137
(cherry picked from commit 25ab62f84177b8f57782048a01a755c5730d6e6b)
Merged-In: I6e24e582dc0c300db173083009da9a1494360137
@DanAlbert DanAlbert removed this from Needs prebuilt update in r25 Jun 27, 2022
@DaydreamCoding
Copy link
Author

https://github.com/alibaba/MNN/tree/95402e79b4424748fc5fc8f6c2f6dc0a56ffc3b0

NDK R23b : failed
NDK R23c : success
NDK R24 : failed
NDK R25 : success

@DanAlbert
Copy link
Member

That looks right to me. Sorry, I had forgotten to come back and update this, but we shipped r25 before a new r24 toolchain became available so r24 won't be receiving the fix (not an LTS, so support window ended when r25 shipped).

@DanAlbert DanAlbert moved this from Awaiting prebuilt drop to Prebuilts submitted in LLVM Aug 10, 2022
@DanAlbert
Copy link
Member

Went back and checked because the triage here hadn't been updated, and neither had the changelog. This fix was definitely in r25, it's not a fluke that your project is working :)

osspop pushed a commit to osspop/android-ndk that referenced this issue Jan 17, 2023
Bug: android/ndk#1608
Test: None
Change-Id: I3eaf0d4c613c33b0923734c2a72502946ea9683f
osspop pushed a commit to osspop/android-ndk that referenced this issue Jan 17, 2023
Bug: android/ndk#1608
Test: None
Change-Id: I3eaf0d4c613c33b0923734c2a72502946ea9683f
(cherry picked from commit 61791fb)
Merged-In: I3eaf0d4c613c33b0923734c2a72502946ea9683f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
LLVM
  
Prebuilts submitted
r23c
  
Merged
r24b
  
Needs prebuilt update
Development

No branches or pull requests

3 participants