Skip to content

LLVM JIT on Windows ARM32 (thumbv7-pc-win32) #60691

Open
@driver1998

Description

@driver1998

I am trying to bootstrap Mesa LLVMpipe on Windows on ARM, so far ARM64 is working just fine.

But on ARM32 it doesn't seem to work.

A reduced repro (tested on ARM64 machine. LLVM 15.0.7 built as ARM32, with LLVM-MinGW toolchain):

$ cat test.ll
; test.ll
define i32 @main() {
  ret i32 42
}

$ /d/install/bin/lli --version
LLVM (http://llvm.org/):
  LLVM version 15.0.7
  DEBUG build with assertions.
  Default target: armv7-w64-windows-gnu
  Host CPU: (unknown)

$ /d/install/bin/lli test.ll
error: Function 'main' uses ARM instructions, but the target does not support ARM mode execution.

$ /d/install/bin/lli --march=thumbv7 test.ll
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: D:\\install\\bin\\lli.exe --march=thumbv7 test.ll
Exception Code: 0xC0000005
#0 0x1fce1000
#1 0x003ffb72 llvm::orc::runAsMain(int (*)(int, char**), llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, llvm::Optional<llvm::StringRef>) D:/llvm-project-15.0.7.src/llvm/lib/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp:39:10
#2 0x000f5066 runOrcJIT(char const*) D:/llvm-project-15.0.7.src/llvm/tools/lli/lli.cpp:1153:14
#3 0x000f2d88 main D:/llvm-project-15.0.7.src/llvm/tools/lli/lli.cpp:507:12
#4 0x000f13e6 __tmainCRTStartup /build/mingw-w64/mingw-w64-crt/build-armv7/../crt/crtexe.c:329:15
#5 0x000f142a .l_start /build/mingw-w64/mingw-w64-crt/build-armv7/../crt/crtexe.c:206:9
#6 0x77005650 (C:\windows\System32\KERNEL32.DLL+0x5650)
#7 0x770fbad4 (C:\windows\SYSTEM32\ntdll.dll+0x4bad4)
Segmentation fault

$ /d/install/bin/lli --march=thumb test.ll
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: D:\\install\\bin\\lli.exe --march=thumb test.ll
Exception Code: 0xC0000005
#0 0x24581000
#1 0x003ffb72 llvm::orc::runAsMain(int (*)(int, char**), llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, llvm::Optional<llvm::StringRef>) D:/llvm-project-15.0.7.src/llvm/lib/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp:39:10
#2 0x000f5066 runOrcJIT(char const*) D:/llvm-project-15.0.7.src/llvm/tools/lli/lli.cpp:1153:14
#3 0x000f2d88 main D:/llvm-project-15.0.7.src/llvm/tools/lli/lli.cpp:507:12
#4 0x000f13e6 __tmainCRTStartup /build/mingw-w64/mingw-w64-crt/build-armv7/../crt/crtexe.c:329:15
#5 0x000f142a .l_start /build/mingw-w64/mingw-w64-crt/build-armv7/../crt/crtexe.c:206:9
#6 0x77005650 (C:\windows\System32\KERNEL32.DLL+0x5650)
#7 0x770fbad4 (C:\windows\SYSTEM32\ntdll.dll+0x4bad4)
Segmentation fault

$ /d/install/bin/lli --march=thumb --jit-kind=mcjit test.ll
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: D:\\install\\bin\\lli.exe --march=thumb --jit-kind=mcjit test.ll
Exception Code: 0xC0000005
#0 0x1fce1000
#1 0x0030882e llvm::MCJIT::runFunction(llvm::Function*, llvm::ArrayRef<llvm::GenericValue>) D:/llvm-project-15.0.7.src/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp:585:37
#2 0x002f5ba0 llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>> const&, char const* const*) D:/llvm-project-15.0.7.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:467:10
#3 0x000f3b88 main D:/llvm-project-15.0.7.src/llvm/tools/lli/lli.cpp:744:18
#4 0x000f13e6 __tmainCRTStartup /build/mingw-w64/mingw-w64-crt/build-armv7/../crt/crtexe.c:329:15
#5 0x000f142a .l_start /build/mingw-w64/mingw-w64-crt/build-armv7/../crt/crtexe.c:206:9
#6 0x77005650 (C:\windows\System32\KERNEL32.DLL+0x5650)
#7 0x770fbad4 (C:\windows\SYSTEM32\ntdll.dll+0x4bad4)
Segmentation fault

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions