
Currently on mcpu=v3 we do not support sdiv, srem instructions. And the backend crashes with stacktrace & coredump, which is misleading for end users, as this is not a "bug" Add llvm bug reporting for sdiv/srem on ISel legalize-op phase. For clang frontend we can get detailed location & bug report. $ build/bin/clang -g -target bpf -c local/sdiv.c local/sdiv.c:1:35: error: unsupported signed division, please convert to unsigned div/mod. 1 | int sdiv(int a, int b) { return a / b; } | ^ 1 error generated. Fixes: #70433 Fixes: #48647 This also improves error handling for dynamic stack allocation: local/vla.c:2:3: error: unsupported dynamic stack allocation 2 | int b[n]; | ^ 1 error generated. Fixes: https://github.com/llvm/llvm-project/issues/57171
9 lines
217 B
LLVM
9 lines
217 B
LLVM
; RUN: not llc < %s -mtriple=bpfel 2>&1 | FileCheck %s
|
|
|
|
define i64 @vla(i64 %num) {
|
|
; CHECK: unsupported dynamic stack allocation
|
|
%vla = alloca i32, i64 %num
|
|
%ret = ptrtoint ptr %vla to i64
|
|
ret i64 %ret
|
|
}
|