Skip to content

[BUG] Local stack slot allocation compiler crash on SVE conversion #1834

@ilinpv

Description

@ilinpv

Description

// main.cpp
#include <arm_sve.h>
void foo(const float16_t * src1) {
  const float16_t *srcs[4] = {src1, src1, src1, src1};
  svuint32x2_t src_ptrs;
  svst2_u32(svptrue_b8(), (uint32_t*)srcs, src_ptrs);
}

Running
~/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ main.cpp --target=aarch64-linux-android25 -march=armv8-a+sve -O0 -c
on current ndk r25b we got

Stack dump:                                                                                                                         
0.      Program arguments: /data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ main.cpp --target=aarch64-linux-android25 -c -march=armv8-a+sve -O0 -c                                                                             
1.      <eof> parser at end of file                                                                                                 
2.      Code generation                                                                                                             
3.      Running pass 'Function Pass Manager' on module 'main.cpp'.                                                                  
4.      Running pass 'Local Stack Slot Allocation' on function '@_Z3fooPKDh'                                                        
 #0 0x00000000047d3da8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x47d3da8)                                                                                        
 #1 0x00000000047d2f10 llvm::sys::RunSignalHandlers() (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x47d2f10)                                                                                                             
 #2 0x000000000479e993 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x479e993)        
 #3 0x000000000479eb71 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x479eb71)        
 #4 0x00007f53356df520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)                                                                    
 #5 0x0000000005ef7413 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x5ef7413)        
 #6 0x0000000005ef7222 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x5ef7222)        
 #7 0x000000000642057b (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x642057b)        
 #8 0x0000000005d9f8aa llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x5d9f8aa)                                                                                  
 #9 0x0000000005d9fed3 llvm::FPPassManager::runOnFunction(llvm::Function&) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x5d9fed3)                                                                                        
#10 0x0000000005d9fa2f llvm::FPPassManager::runOnModule(llvm::Module&) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x5d9fa2f)                                                                                            
#11 0x0000000006388494 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6388494)                                                                                          
#12 0x00000000065b5328 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> >) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x65b5328)                                                                              
#13 0x0000000006053215 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6053215)
#14 0x0000000005ea22e9 clang::ParseAST(clang::Sema&, bool, bool) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x5ea22e9)
#15 0x000000000639ee0d clang::FrontendAction::Execute() (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x639ee0d)
#16 0x000000000639ecad clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x639ecad)
#17 0x000000000639f0c1 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x639f0c1)
#18 0x0000000006687454 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6687454)
#19 0x00000000066842e3 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x66842e3)
#20 0x0000000006684192 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6684192)
#21 0x0000000006684161 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6684161)
#22 0x0000000006683ef4 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 (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6683ef4)
#23 0x0000000006683d5f clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6683d5f)
#24 0x0000000006683bf2 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*> >&) (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6683bf2)
#25 0x0000000006655f2e main (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x6655f2e)
#26 0x00007f53356c6d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#27 0x00007f53356c6e40 call_init ./csu/../csu/libc-start.c:128:20
#28 0x00007f53356c6e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#29 0x00000000064b2f69 _start (/data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x64b2f69)
clang-14: error: clang frontend command failed with exit code 136 (use -v to see invocation)
Android (8490178, based on r450784d) clang version 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0cca074e9
238af8b4106c30add4418f6)
Target: aarch64-unknown-linux-android25
Thread model: posix
InstalledDir: /data/adb_user/Android/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin
clang-14: note: diagnostic msg: 
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/main-d11bac.cpp
clang-14: note: diagnostic msg: /tmp/main-d11bac.sh
clang-14: note: diagnostic msg: 

********************

main-d11bac.zip

Affected versions

r25, Canary

Canary version

android-ndk-9512540-linux-x86_64

Host OS

Linux

Host OS version

Ubuntu 22.04 LTS

Affected ABIs

arm64-v8a

Build system

ndk-build

Other build system

No response

minSdkVersion

0

Device API level

No response

Metadata

Metadata

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions